opf/openproject

View on GitHub
app/views/roles/_permissions.html.erb

Summary

Maintainability
Test Coverage
<%#-- 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][]', '' %>