@@ -66,14 +66,7 class WorkflowsController < ApplicationController | |||||
66 |
|
66 | |||
67 | if @role && @tracker |
|
67 | if @role && @tracker | |
68 | if request.post? |
|
68 | if request.post? | |
69 | WorkflowPermission.destroy_all({:role_id => @role.id, :tracker_id => @tracker.id}) |
|
69 | WorkflowPermission.replace_permissions(@tracker, @role, params[:permissions] || {}) | |
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 | } |
|
|||
77 | redirect_to :action => 'permissions', :role_id => @role, :tracker_id => @tracker |
|
70 | redirect_to :action => 'permissions', :role_id => @role, :tracker_id => @tracker | |
78 | return |
|
71 | return | |
79 | end |
|
72 | end |
@@ -19,6 +19,22 class WorkflowPermission < WorkflowRule | |||||
19 | validates_inclusion_of :rule, :in => %w(readonly required) |
|
19 | validates_inclusion_of :rule, :in => %w(readonly required) | |
20 | validate :validate_field_name |
|
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 | protected |
|
38 | protected | |
23 |
|
39 | |||
24 | def validate_field_name |
|
40 | def validate_field_name |
General Comments 0
You need to be logged in to leave comments.
Login now