app/views/roles/_permissions.html.erb
<%#-- copyright
OpenProject is an open source project management software.
Copyright (C) 2012-2024 the OpenProject GmbH
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 3.
OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
Copyright (C) 2006-2013 Jean-Philippe Lang
Copyright (C) 2010-2013 the ChiliProject Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
See COPYRIGHT and LICENSE files for more details.
++#%>
<% permissions.each do |mod, mod_permissions| %>
<% global_prefix = show_global_role ? 'fieldset--global--' : 'fieldset--' %>
<% module_name = mod.blank? ? 'fieldset--global--' + Project.model_name.human.downcase.gsub(' ', '_') : global_prefix + l_or_humanize(mod, prefix: 'project_module_').downcase.gsub(' ', '_') %>
<% module_id = module_name.parameterize %>
<fieldset class="form--fieldset -collapsible" id="<%= module_id %>">
<legend class="form--fieldset-legend">
<% if mod.blank? %>
<%= show_global_role ? t(:label_global) : Project.model_name.human %>
<% else %>
<%= I18n.t("permission_header_for_project_module_#{mod}", default: l_or_humanize(mod, prefix: 'project_module_')) %>
<% end %>
</legend>
<div class="form--toolbar">
<span class="form--toolbar-item">
(<%= check_all_links module_id %>)
</span>
</div>
<% unless I18n.t("#{mod}.permission_header_explanation", default: '').empty? %>
<div class="-italic">
<p>
<%= I18n.t("#{mod}.permission_header_explanation").html_safe %>
</p>
</div>
<% end %>
<div class="-columns-2">
<% Array(mod_permissions).each do |permission| %>
<% next if permission.global? && !show_global_role %>
<div class="form--field">
<div class="form--field-container">
<label class="form--label-with-check-box">
<%= styled_check_box_tag 'role[permissions][]',
permission.name,
(role.permissions && role.permissions.include?(permission.name)) %>
<%= t(:"permission_#{permission.name}") %>
</label>
</div>
<div class="form--field-instructions -labeled-checkbox">
<%= t(:"permission_#{permission.name}_explanation", default: nil) %>
</div>
</div>
<% end %>
</div>
</fieldset>
<% end %>
<%= hidden_field_tag 'role[permissions][]', '' %>