FEATURE: Staff members can lock posts

Locking a post prevents it from being edited. This is useful if the user
has posted something which has been edited out, and the staff members don't
want them to be able to edit it back in again.
This commit is contained in:
Robin Ward
2018-01-25 15:38:40 -05:00
parent 76317957ed
commit 6b04967e2f
19 changed files with 218 additions and 5 deletions

23
lib/post_locker.rb Normal file
View File

@@ -0,0 +1,23 @@
class PostLocker
def initialize(post, user)
@post, @user = post, user
end
def lock
Guardian.new(@user).ensure_can_lock_post!(@post)
Post.transaction do
@post.update_column(:locked_by_id, @user.id)
StaffActionLogger.new(@user).log_post_lock(@post, locked: true)
end
end
def unlock
Guardian.new(@user).ensure_can_lock_post!(@post)
Post.transaction do
@post.update_column(:locked_by_id, nil)
StaffActionLogger.new(@user).log_post_lock(@post, locked: false)
end
end
end