{% extends 'administration/base.html.twig' %} {% block title %}{{ 'admin.role_management'|trans }}{% endblock %} {% block body %} {% set canRoleCreate = has_permission('ALLOW_ROLE_CREATE', app.user) %} {% set canRoleEdit = has_permission('ALLOW_ROLE_EDIT', app.user) %} {% set canRoleDelete = has_permission('ALLOW_ROLE_DELETE', app.user) %}

{{ 'admin.role_management'|trans }}

{{ 'admin.roles_list_hint'|trans }}

{% if canRoleCreate %} {{ 'admin.role.new_role'|trans }} {% endif %}
{% if roles|length > 0 %}
{% for role in roles %} {% set countsByGroup = {} %} {% for perm in role.permissions %} {% set split = perm.name|split('_') %} {% set group = split|length > 1 ? split[1]|lower : 'other' %} {% set prev = countsByGroup[group] is defined ? countsByGroup[group] : 0 %} {% set countsByGroup = countsByGroup|merge({(group): prev + 1}) %} {% endfor %} {% endfor %}
{{ 'admin.roles_table_name'|trans }} {{ 'admin.roles_table_description'|trans }} {{ 'admin.roles_table_permissions'|trans }} {{ 'admin.roles_table_type'|trans }} {{ 'admin.actions'|trans }}
{{ role.name }}
{{ role.description ?: '-' }}
{{ role.description ?: '-' }} {% if role.permissions|length > 0 %}
{% for group, count in countsByGroup %} {{ ('admin.permission_groups.' ~ group)|trans }}: {{ count }} {% endfor %}
{% else %} {{ 'admin.role.no_permissions'|trans }} {% endif %}
{% if role.isSystem %} {{ 'admin.system'|trans }} {% else %} {{ 'admin.roles_custom'|trans }} {% endif %}
{% if canRoleEdit %} {% endif %} {% if canRoleDelete and not role.isSystem %}
{% elseif not role.isSystem %} {% else %} {% endif %}
{% include 'administration/pagination.html.twig' with { 'paginationPath': 'admin_roles', 'totalPages': totalPages, 'currentPage': currentPage, 'search': search } %}
{% else %}

{{ 'admin.no_roles_found'|trans }}

{{ 'admin.roles_empty_filtered'|trans }}

{% endif %}
{% endblock %}