mirror of
https://github.com/meineerde/redmine.git
synced 2025-12-26 18:31:14 +00:00
Add roles filter on permissions report (#32343).
git-svn-id: http://svn.redmine.org/redmine/trunk@18861 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
1eca6f9879
commit
0dc7269c88
@ -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|
|
||||
|
||||
@ -1,7 +1,28 @@
|
||||
<%= title [l(:label_role_plural), roles_path], l(:label_permissions_report) %>
|
||||
|
||||
<div class="hide-when-print">
|
||||
<fieldset id="filters" class="collapsible collapsed">
|
||||
<legend onclick="toggleFieldset(this);" class="icon icon-collapsed"><%= l(:label_filter_plural) %></legend>
|
||||
<div style="display: none;">
|
||||
<%= form_tag({}, :method => :get) do %>
|
||||
<% Role.sorted.to_a.each do |role| %>
|
||||
<label>
|
||||
<%= check_box_tag "ids[]", role.id, @roles.include?(role) %>
|
||||
<%= role.name %>
|
||||
</label>
|
||||
<% end %>
|
||||
<p>
|
||||
<%= submit_tag l(:button_apply), :name => nil %>
|
||||
<%= link_to l(:button_clear), permissions_roles_path, :class => 'icon icon-reload' %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<%= form_tag(permissions_roles_path, :id => 'permissions_form') do %>
|
||||
<%= hidden_field_tag 'permissions[0]', '', :id => nil %>
|
||||
<%= hidden_field_tag 'ids[]', @roles.map(&:id) %>
|
||||
<div class="autoscroll">
|
||||
<table class="list permissions">
|
||||
<thead>
|
||||
|
||||
@ -236,6 +236,17 @@ class RolesControllerTest < Redmine::ControllerTest
|
||||
assert_select 'input[name=?][type=checkbox][value=delete_issues]:not([checked])', 'permissions[3][]'
|
||||
end
|
||||
|
||||
def test_get_permissions_with_filter
|
||||
get :permissions, :params => {
|
||||
:ids => ['2', '3']
|
||||
}
|
||||
assert_response :success
|
||||
|
||||
assert_select 'table.permissions thead th', 3
|
||||
assert_select 'input[name=?][type=checkbox][value=add_issues][checked=checked]', 'permissions[3][]'
|
||||
assert_select 'input[name=?][type=checkbox][value=delete_issues]:not([checked])', 'permissions[3][]'
|
||||
end
|
||||
|
||||
def test_post_permissions
|
||||
post :permissions, :params => {
|
||||
:permissions => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user