{% extends 'base.html.twig' %} {% import "macros/datatables.html.twig" as tables %} {% import "macros/widgets.html.twig" as widgets %} {% block main %} {% set roles = roles|reverse %} {% set columns = { 'name': 'alwaysVisible', } %} {% set canEditPermissions = is_granted('role_permissions') %}
{% for role in roles %} {% set class = 'alwaysVisible text-center' %} {% if role.name == 'ROLE_SUPER_ADMIN' %} {% set class = class ~ ' bg-orange-lt' %} {% elseif role.name == 'ROLE_USER' %} {% set class = class ~ ' bg-green-lt' %} {% endif %} {% set columns = columns|merge({(role.name): {'class': class}}) %} {% set roleUsers = [] %} {% for user in users %} {% if user.hasRole(role.getName()) %} {% set roleUsers = roleUsers|merge([user]) %} {% endif %} {% endfor %} {% if not role.isUser() %}

{{ role.getName()|trans }} {% if canEditPermissions and (role.name not in system_roles) %}   {{ icon('trash') }} {% endif %}

{% if is_granted('view_user') %} {{ 'amount'|trans }}: {{ roleUsers|length }} {% else %} Total {{ roleUsers|length }} users {% endif %}
{% for user in roleUsers %} {{ widgets.user_avatar(user, user.displayName, 'avatar-rounded avatar-sm') }} {% endfor %}
{% endif %} {% endfor %}
{% set tableName = 'user_admin_permissions' %} {{ tables.datatable_header(tableName, columns, null, {'reload': 'kimai.userRoleUpdate'}) }} {% set colspan = 1 + (roles|length) %} {% for title, perms in sorted %} {% if perms|length > 0 %} {{ title }} {% for permission in perms|sort %} {{ permission }} {% for role in roles %} {% set value = manager.permission(role.name, permission) %} {# see RolePermissionManager for this special case #} {% if role.name == 'ROLE_SUPER_ADMIN' and permission in always_apply_superadmin %} {% if value %} {{ widgets.label('yes'|trans, 'warning') }} {% else %} {{ widgets.label('no'|trans, 'danger') }} {% endif %} {% else %} {{ widgets.label_boolean(value) }} {% endif %} {% endfor %} {% endfor %} {% endif %} {% endfor %} {{ tables.data_table_footer() }} {% endblock %} {% block javascripts %} {{ parent() }} {% endblock %}