mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-06-13 04:40:31 +08:00
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.
23 lines
534 B
Ruby
Vendored
23 lines
534 B
Ruby
Vendored
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
|