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