##// END OF EJS Templates
Moved code for replacing permissions to WorkflowPermission model....
Jean-Philippe Lang -
r9804:9e06942ef01e
parent child
Show More
@@ -66,14 +66,7 class WorkflowsController < ApplicationController
66 66
67 67 if @role && @tracker
68 68 if request.post?
69 WorkflowPermission.destroy_all({:role_id => @role.id, :tracker_id => @tracker.id})
70 (params[:permissions] || {}).each { |field, rule_by_status_id|
71 rule_by_status_id.each { |status_id, rule|
72 if rule.present?
73 WorkflowPermission.create(:role_id => @role.id, :tracker_id => @tracker.id, :old_status_id => status_id, :field_name => field, :rule => rule)
74 end
75 }
76 }
69 WorkflowPermission.replace_permissions(@tracker, @role, params[:permissions] || {})
77 70 redirect_to :action => 'permissions', :role_id => @role, :tracker_id => @tracker
78 71 return
79 72 end
@@ -19,6 +19,22 class WorkflowPermission < WorkflowRule
19 19 validates_inclusion_of :rule, :in => %w(readonly required)
20 20 validate :validate_field_name
21 21
22 # Replaces the workflow permissions for the given tracker and role
23 #
24 # Example:
25 # WorkflowPermission.replace_permissions role, tracker, {'due_date' => {'1' => 'readonly', '2' => 'required'}}
26 def self.replace_permissions(tracker, role, permissions)
27 destroy_all(:tracker_id => tracker.id, :role_id => role.id)
28
29 permissions.each { |field, rule_by_status_id|
30 rule_by_status_id.each { |status_id, rule|
31 if rule.present?
32 WorkflowPermission.create(:role_id => role.id, :tracker_id => tracker.id, :old_status_id => status_id, :field_name => field, :rule => rule)
33 end
34 }
35 }
36 end
37
22 38 protected
23 39
24 40 def validate_field_name
General Comments 0
You need to be logged in to leave comments. Login now