{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import field, textarea_field, pill, alert, permission_matrix, empty_state %} {% block page_title %}{{ group.name }}{% endblock %} {% block page_sub %}{{ group.member_count }} Mitglied{{ '' if group.member_count == 1 else 'er' }} · {{ group.permissions | length }} Rechte{% endblock %} {% block breadcrumb %} {% endblock %} {% block content %} {% set locked = group.is_system and not unlocked %} {% if group.is_system %} {% if locked %}
{{ icon('lock', size=18) }}
Systemgruppe
Name und Rechte sind gesperrt. Anders als im Vorgänger werden die Rechte nicht bei jedem Neustart auf die Vorlage zurückgesetzt – Anpassungen bleiben erhalten. {% if current_user.has('groups.edit') %} {{ icon('unlock', size=14) }} Rechte freischalten {% endif %}
{% else %} {{ alert('Die Rechte dieser Systemgruppe sind zur Bearbeitung freigeschaltet.', 'warning') }} {% endif %} {% endif %}
{% if not locked %}{% endif %} {% if unlocked %}{% endif %}
{{ icon('settings', size=17) }} Stammdaten
{% if group.preset_key and current_user.is_admin %} {% endif %}
{{ field('name', 'Name', value=group.name, required=True, disabled=group.is_system, hint_text='Systemgruppen können nicht umbenannt werden.' if group.is_system else '') }} {{ textarea_field('description', 'Beschreibung', value=group.description, rows=2, extra_class='field--full') }}
{{ icon('shield', size=17) }} Rechtematrix
Der Bereichsschalter ist ein Hauptschalter: ohne ihn greift kein Recht des Bereichs. Jede Aktion setzt „Ansehen“ derselben Zeile voraus.
{{ permission_matrix(tree, action_meta, state, disabled=locked or not can_edit) }}
{% if can_edit and not locked %} {% endif %}
{{ icon('users', size=17) }} Mitglieder
Zuordnung erfolgt in der Benutzerverwaltung
{% if current_user.has('users.view') %} Benutzerverwaltung {% endif %}
{% if members %}
{% for member in members %} {% endfor %}
BenutzerNameQuelle
{{ member.username }} {% if member.is_admin %}{{ pill('Admin', 'accent') }}{% endif %} {{ (member.first_name ~ ' ' ~ member.last_name) | trim or '–' | safe }} {{ 'Verzeichnis' if member.auth_source == 'ldap' else 'Lokal' }}
{% else %} {{ empty_state('Keine Mitglieder', 'Diese Gruppe ist noch niemandem zugeordnet.', 'users') }} {% endif %}
{% endblock %}