Post#approve!: move approving logic to post_approval.rb.
This commit is contained in:
@@ -321,20 +321,8 @@ class Post < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def approve!
|
def approve!(approver = CurrentUser.user)
|
||||||
flags.each {|x| x.resolve!}
|
approvals.create!(user: approver)
|
||||||
self.is_flagged = false
|
|
||||||
self.is_pending = false
|
|
||||||
self.is_deleted = false
|
|
||||||
self.approver_id = CurrentUser.id
|
|
||||||
|
|
||||||
PostApproval.create(user_id: CurrentUser.id, post_id: id)
|
|
||||||
|
|
||||||
if is_deleted_was == true
|
|
||||||
ModAction.log("undeleted post ##{id}")
|
|
||||||
end
|
|
||||||
|
|
||||||
save!
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def approved_by?(user)
|
def approved_by?(user)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ class PostApproval < ActiveRecord::Base
|
|||||||
belongs_to :post, inverse_of: :approvals
|
belongs_to :post, inverse_of: :approvals
|
||||||
|
|
||||||
validate :validate_approval
|
validate :validate_approval
|
||||||
|
after_create :approve_post
|
||||||
|
|
||||||
def self.prune!
|
def self.prune!
|
||||||
where("created_at < ?", 1.month.ago).delete_all
|
where("created_at < ?", 1.month.ago).delete_all
|
||||||
@@ -21,4 +22,11 @@ class PostApproval < ActiveRecord::Base
|
|||||||
errors.add(:base, "You have previously approved this post and cannot approve it again")
|
errors.add(:base, "You have previously approved this post and cannot approve it again")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def approve_post
|
||||||
|
ModAction.log("undeleted post ##{id}") if post.is_deleted
|
||||||
|
|
||||||
|
post.flags.each(&:resolve!)
|
||||||
|
post.update({ approver: user, is_flagged: false, is_pending: false, is_deleted: false }, without_protection: true)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user