2019-05-02 18:17:27 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-01-25 15:38:40 -05:00
|
|
|
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
|