diff --git a/app/controllers/roles_controller.rb b/app/controllers/roles_controller.rb index 90b912258..985953377 100644 --- a/app/controllers/roles_controller.rb +++ b/app/controllers/roles_controller.rb @@ -103,7 +103,11 @@ class RolesController < ApplicationController end def permissions - @roles = Role.sorted.to_a + scope = Role.sorted + if params[:ids].present? + scope = scope.where(:id => params[:ids]) + end + @roles = scope.to_a @permissions = Redmine::AccessControl.permissions.select { |p| !p.public? } if request.post? @roles.each do |role| diff --git a/app/views/roles/permissions.html.erb b/app/views/roles/permissions.html.erb index a4b14493d..16e78f877 100644 --- a/app/views/roles/permissions.html.erb +++ b/app/views/roles/permissions.html.erb @@ -1,7 +1,28 @@ <%= title [l(:label_role_plural), roles_path], l(:label_permissions_report) %> +
+ <%= form_tag(permissions_roles_path, :id => 'permissions_form') do %> <%= hidden_field_tag 'permissions[0]', '', :id => nil %> +<%= hidden_field_tag 'ids[]', @roles.map(&:id) %>