Set approver of aliases/implications in BURs.
Previously only the BUR's approver was set when a BUR was approved. Set the approver for each alias/implication in the BUR as well. Additionally: * Refactor `approve!` to take a user instead of just a user id. * Be mass-assignment permissions aware when setting approver_id.
This commit is contained in:
@@ -33,12 +33,10 @@ class BulkUpdateRequest < ActiveRecord::Base
|
||||
|
||||
extend SearchMethods
|
||||
|
||||
def approve!(approver_id)
|
||||
self.approver_id = approver_id
|
||||
AliasAndImplicationImporter.new(script, forum_topic_id, "1", true).process!
|
||||
self.status = "approved"
|
||||
self.skip_secondary_validations = true
|
||||
save
|
||||
def approve!(approver)
|
||||
AliasAndImplicationImporter.new(script, forum_topic_id, "1", true).process!(approver)
|
||||
|
||||
update({ :status => "approved", :approver_id => approver.id, :skip_secondary_validations => true }, :as => approver.role)
|
||||
update_forum_topic_for_approve
|
||||
|
||||
rescue Exception => x
|
||||
|
||||
@@ -21,7 +21,7 @@ class TagAlias < ActiveRecord::Base
|
||||
belongs_to :approver, :class_name => "User"
|
||||
belongs_to :forum_topic
|
||||
attr_accessible :antecedent_name, :consequent_name, :forum_topic_id, :skip_secondary_validations
|
||||
attr_accessible :status, :as => [:admin]
|
||||
attr_accessible :status, :approver_id, :as => [:admin]
|
||||
|
||||
module SearchMethods
|
||||
def name_matches(name)
|
||||
@@ -88,9 +88,9 @@ class TagAlias < ActiveRecord::Base
|
||||
end.uniq
|
||||
end
|
||||
|
||||
def approve!(approver_id)
|
||||
update_attributes(:status => "queued", :approver_id => approver_id)
|
||||
delay(:queue => "default").process!(true)
|
||||
def approve!(approver = CurrentUser.user, update_topic: true)
|
||||
update({ :status => "queued", :approver_id => approver.id }, :as => approver.role)
|
||||
delay(:queue => "default").process!(update_topic)
|
||||
end
|
||||
|
||||
def process!(update_topic=true)
|
||||
@@ -102,9 +102,8 @@ class TagAlias < ActiveRecord::Base
|
||||
forum_message = []
|
||||
|
||||
begin
|
||||
admin = CurrentUser.user || approver || User.admins.first
|
||||
CurrentUser.scoped(admin, "127.0.0.1") do
|
||||
update({ :status => "processing" }, :as => CurrentUser.role)
|
||||
CurrentUser.scoped(approver, CurrentUser.ip_addr) do
|
||||
update({ :status => "processing" }, :as => approver.role)
|
||||
move_aliases_and_implications
|
||||
move_saved_searches
|
||||
clear_all_cache
|
||||
@@ -112,7 +111,7 @@ class TagAlias < ActiveRecord::Base
|
||||
update_posts
|
||||
forum_message << "The tag alias [[#{antecedent_name}]] -> [[#{consequent_name}]] (alias ##{id}) has been approved."
|
||||
forum_message << rename_wiki_and_artist
|
||||
update({ :status => "active", :post_count => consequent_tag.post_count }, :as => CurrentUser.role)
|
||||
update({ :status => "active", :post_count => consequent_tag.post_count }, :as => approver.role)
|
||||
end
|
||||
rescue Exception => e
|
||||
if tries < 5
|
||||
|
||||
@@ -22,7 +22,7 @@ class TagImplication < ActiveRecord::Base
|
||||
validate :antecedent_and_consequent_are_different
|
||||
validate :wiki_pages_present, :on => :create
|
||||
attr_accessible :antecedent_name, :consequent_name, :forum_topic_id, :skip_secondary_validations
|
||||
attr_accessible :status, :as => [:admin]
|
||||
attr_accessible :status, :approver_id, :as => [:admin]
|
||||
|
||||
module DescendantMethods
|
||||
extend ActiveSupport::Concern
|
||||
@@ -138,11 +138,10 @@ class TagImplication < ActiveRecord::Base
|
||||
tries = 0
|
||||
|
||||
begin
|
||||
admin = CurrentUser.user || approver || User.admins.first
|
||||
CurrentUser.scoped(admin, "127.0.0.1") do
|
||||
update({ :status => "processing" }, :as => CurrentUser.role)
|
||||
CurrentUser.scoped(approver, CurrentUser.ip_addr) do
|
||||
update({ :status => "processing" }, :as => approver.role)
|
||||
update_posts
|
||||
update({ :status => "active" }, :as => CurrentUser.role)
|
||||
update({ :status => "active" }, :as => approver.role)
|
||||
update_descendant_names_for_parents
|
||||
update_forum_topic_for_approve if update_topic
|
||||
end
|
||||
@@ -283,11 +282,9 @@ class TagImplication < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def approve!(approver_id)
|
||||
self.status = "queued"
|
||||
self.approver_id = approver_id
|
||||
save
|
||||
delay(:queue => "default").process!(true)
|
||||
def approve!(approver = CurrentUser.user, update_topic: true)
|
||||
update({ :status => "queued", :approver_id => approver.id }, :as => approver.role)
|
||||
delay(:queue => "default").process!(update_topic)
|
||||
end
|
||||
|
||||
def reject!
|
||||
|
||||
Reference in New Issue
Block a user