From 6a28be5e3e3196b027e8696bd6576b8361487b25 Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Fri, 2 May 2014 09:40:23 +0200 Subject: [PATCH] Moved comment removal to API --- src/Controllers/CommentController.php | 19 +++++-------- src/Jobs/DeleteCommentJob.php | 40 +++++++++++++++++++++++++++ src/Jobs/EditCommentJob.php | 3 +- 3 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 src/Jobs/DeleteCommentJob.php diff --git a/src/Controllers/CommentController.php b/src/Controllers/CommentController.php index 2bdcc43f..6fce8e3c 100644 --- a/src/Controllers/CommentController.php +++ b/src/Controllers/CommentController.php @@ -46,7 +46,7 @@ class CommentController if (InputHelper::get('sender') == 'preview') return $this->previewAction(); - $comment = Api::run( + Api::run( new AddCommentJob(), [ JobArgs::POST_ID => InputHelper::get('post-id'), @@ -64,7 +64,7 @@ class CommentController if (InputHelper::get('sender') == 'preview') return $this->previewAction(); - $comment = Api::run( + Api::run( new EditCommentJob(), [ JobArgs::COMMENT_ID => $id, @@ -74,15 +74,10 @@ class CommentController public function deleteAction($id) { - $comment = CommentModel::findById($id); - - Access::assert( - Privilege::DeleteComment, - Access::getIdentity($comment->getCommenter())); - - CommentModel::remove($comment); - - LogHelper::log('{user} removed comment from {post}', [ - 'post' => TextHelper::reprPost($comment->getPost())]); + $comment = Api::run( + new DeleteCommentJob(), + [ + JobArgs::COMMENT_ID => $id, + ]); } } diff --git a/src/Jobs/DeleteCommentJob.php b/src/Jobs/DeleteCommentJob.php new file mode 100644 index 00000000..b7f6e7ae --- /dev/null +++ b/src/Jobs/DeleteCommentJob.php @@ -0,0 +1,40 @@ +comment = CommentModel::findById($this->getArgument(JobArgs::COMMENT_ID)); + } + + public function execute() + { + $post = $this->comment->getPost(); + + CommentModel::remove($this->comment); + + LogHelper::log('{user} removed comment from {post}', [ + 'user' => TextHelper::reprUser(Auth::getCurrentUser()), + 'post' => TextHelper::reprPost($post)]); + } + + public function requiresPrivilege() + { + return + [ + Privilege::DeleteComment, + Access::getIdentity($this->comment->getCommenter()) + ]; + } + + public function requiresAuthentication() + { + return true; + } + + public function requiresConfirmedEmail() + { + return getConfig()->registration->needEmailForCommenting; + } +} diff --git a/src/Jobs/EditCommentJob.php b/src/Jobs/EditCommentJob.php index f82abf03..b2c70ff6 100644 --- a/src/Jobs/EditCommentJob.php +++ b/src/Jobs/EditCommentJob.php @@ -10,7 +10,6 @@ class EditCommentJob extends AbstractJob public function execute() { - $user = Auth::getCurrentUser(); $comment = $this->comment; $comment->commentDate = time(); @@ -18,7 +17,7 @@ class EditCommentJob extends AbstractJob CommentModel::save($comment); LogHelper::log('{user} edited comment in {post}', [ - 'user' => TextHelper::reprUser($user), + 'user' => TextHelper::reprUser(Auth::getCurrentUser()), 'post' => TextHelper::reprPost($comment->getPost())]); return $comment;