mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 06:04:11 +08:00
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
|