24 lines
534 B
Ruby
24 lines
534 B
Ruby
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
|