Moved code for replacing permissions to WorkflowPermission model.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9987 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
02e7025685
commit
9e06942ef0
|
@ -66,14 +66,7 @@ class WorkflowsController < ApplicationController
|
||||||
|
|
||||||
if @role && @tracker
|
if @role && @tracker
|
||||||
if request.post?
|
if request.post?
|
||||||
WorkflowPermission.destroy_all({:role_id => @role.id, :tracker_id => @tracker.id})
|
WorkflowPermission.replace_permissions(@tracker, @role, params[:permissions] || {})
|
||||||
(params[:permissions] || {}).each { |field, rule_by_status_id|
|
|
||||||
rule_by_status_id.each { |status_id, rule|
|
|
||||||
if rule.present?
|
|
||||||
WorkflowPermission.create(:role_id => @role.id, :tracker_id => @tracker.id, :old_status_id => status_id, :field_name => field, :rule => rule)
|
|
||||||
end
|
|
||||||
}
|
|
||||||
}
|
|
||||||
redirect_to :action => 'permissions', :role_id => @role, :tracker_id => @tracker
|
redirect_to :action => 'permissions', :role_id => @role, :tracker_id => @tracker
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,6 +19,22 @@ class WorkflowPermission < WorkflowRule
|
||||||
validates_inclusion_of :rule, :in => %w(readonly required)
|
validates_inclusion_of :rule, :in => %w(readonly required)
|
||||||
validate :validate_field_name
|
validate :validate_field_name
|
||||||
|
|
||||||
|
# Replaces the workflow permissions for the given tracker and role
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# WorkflowPermission.replace_permissions role, tracker, {'due_date' => {'1' => 'readonly', '2' => 'required'}}
|
||||||
|
def self.replace_permissions(tracker, role, permissions)
|
||||||
|
destroy_all(:tracker_id => tracker.id, :role_id => role.id)
|
||||||
|
|
||||||
|
permissions.each { |field, rule_by_status_id|
|
||||||
|
rule_by_status_id.each { |status_id, rule|
|
||||||
|
if rule.present?
|
||||||
|
WorkflowPermission.create(:role_id => role.id, :tracker_id => tracker.id, :old_status_id => status_id, :field_name => field, :rule => rule)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def validate_field_name
|
def validate_field_name
|
||||||
|
|
Loading…
Reference in New Issue