diff --git a/app/views/roles/_form.html.erb b/app/views/roles/_form.html.erb index 4a49d53de..9dfca5a6e 100644 --- a/app/views/roles/_form.html.erb +++ b/app/views/roles/_form.html.erb @@ -47,7 +47,8 @@

<%= l(:label_permissions) %>

-<% perms_by_module = @role.setable_permissions.group_by {|p| p.project_module.to_s} %> +<% setable_permissions = @role.setable_permissions %> +<% perms_by_module = setable_permissions.group_by {|p| p.project_module.to_s} %> <% perms_by_module.keys.sort.each do |mod| %> <% module_name = mod.blank? ? 'module_project' : "module_#{mod}" %>
<%= toggle_checkboxes_link("##{module_name}\ input") %><%= mod.blank? ? l(:label_project) : l_or_humanize(mod, :prefix => 'project_module_') %> @@ -67,7 +68,8 @@

<%= l(:label_issue_tracking) %>

-<% permissions = %w(view_issues add_issues edit_issues add_issue_notes delete_issues) %> +<% permissions = [:view_issues, :add_issues, :edit_issues, :add_issue_notes, :delete_issues] %> +<% permissions.delete_if{|permission| !setable_permissions.collect(&:name).include?(permission)} %>
diff --git a/test/functional/roles_controller_test.rb b/test/functional/roles_controller_test.rb index 165831407..bf8c70562 100644 --- a/test/functional/roles_controller_test.rb +++ b/test/functional/roles_controller_test.rb @@ -158,6 +158,7 @@ class RolesControllerTest < Redmine::ControllerTest assert_select 'input[name=?][value=?]', 'role[name]', 'Manager' assert_select 'select[name=?]', 'role[issues_visibility]' + assert_select '#role-permissions-trackers table .delete_issues_shown' end def test_edit_anonymous @@ -166,6 +167,7 @@ class RolesControllerTest < Redmine::ControllerTest assert_select 'input[name=?]', 'role[name]', 0 assert_select 'select[name=?]', 'role[issues_visibility]', 0 + assert_select '#role-permissions-trackers table .delete_issues_shown', 0 end def test_edit_invalid_should_respond_with_404 @@ -222,7 +224,7 @@ class RolesControllerTest < Redmine::ControllerTest def test_destroy_role_in_use delete :destroy, :params => {:id => 1} assert_redirected_to '/roles' - assert_equal 'This role is in use and cannot be deleted.', flash[:error] + assert_equal 'This role is in use and cannot be deleted.', flash[:error] assert_not_nil Role.find_by_id(1) end