From db8eab1c5cedda7e89461a90c775e1c2b4a3048f Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Sat, 3 May 2014 19:35:59 +0200 Subject: [PATCH] Moved post removal to API --- public_html/dispatch.php | 2 +- src/Controllers/PostController.php | 11 ++-------- src/Jobs/DeletePostJob.php | 33 ++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 src/Jobs/DeletePostJob.php diff --git a/public_html/dispatch.php b/public_html/dispatch.php index 439d71c3..fdae65c2 100644 --- a/public_html/dispatch.php +++ b/public_html/dispatch.php @@ -74,6 +74,7 @@ $postValidation = \Chibi\Router::register(['PostController', 'uploadAction'], 'POST', '/posts/upload', $postValidation); \Chibi\Router::register(['PostController', 'editView'], 'GET', '/post/{id}/edit', $postValidation); \Chibi\Router::register(['PostController', 'editAction'], 'POST', '/post/{id}/edit', $postValidation); +\Chibi\Router::register(['PostController', 'deleteAction'], 'POST', '/post/{id}/delete', $postValidation); \Chibi\Router::register(['PostController', 'listView'], 'GET', '/{source}', $postValidation); \Chibi\Router::register(['PostController', 'listView'], 'GET', '/{source}/{query}', $postValidation); @@ -105,7 +106,6 @@ foreach (['GET', 'POST'] as $method) \Chibi\Router::register(['PostController', 'thumbAction'], $method, '/post/{name}/thumb', $postValidation); \Chibi\Router::register(['PostController', 'removeFavoriteAction'], $method, '/post/{id}/rem-fav', $postValidation); \Chibi\Router::register(['PostController', 'addFavoriteAction'], $method, '/post/{id}/add-fav', $postValidation); - \Chibi\Router::register(['PostController', 'deleteAction'], $method, '/post/{id}/delete', $postValidation); \Chibi\Router::register(['PostController', 'featureAction'], $method, '/post/{id}/feature', $postValidation); \Chibi\Router::register(['PostController', 'scoreAction'], $method, '/post/{id}/score/{score}', $postValidation); diff --git a/src/Controllers/PostController.php b/src/Controllers/PostController.php index 35ad45a1..0e45f9de 100644 --- a/src/Controllers/PostController.php +++ b/src/Controllers/PostController.php @@ -187,15 +187,8 @@ class PostController public function deleteAction($id) { - $post = PostModel::findByIdOrName($id); - Access::assert(Privilege::DeletePost, Access::getIdentity($post->getUploader())); - - if (!InputHelper::get('submit')) - return; - - PostModel::remove($post); - - LogHelper::log('{user} deleted {post}', ['post' => TextHelper::reprPost($id)]); + Api::run(new DeletePostJob(), [ + DeletePostJob::POST_ID => $id]); } public function addFavoriteAction($id) diff --git a/src/Jobs/DeletePostJob.php b/src/Jobs/DeletePostJob.php new file mode 100644 index 00000000..fc88d55c --- /dev/null +++ b/src/Jobs/DeletePostJob.php @@ -0,0 +1,33 @@ +post; + + PostModel::remove($post); + + LogHelper::log('{user} deleted {post}', [ + 'user' => TextHelper::reprUser(Auth::getCurrentUser()), + 'post' => TextHelper::reprPost($post)]); + } + + public function requiresPrivilege() + { + return + [ + Privilege::DeletePost, + Access::getIdentity($this->post->getUploader()) + ]; + } + + public function requiresAuthentication() + { + return true; + } + + public function requiresConfirmedEmail() + { + return getConfig()->registration->needEmailForCommenting; + } +}