{% extends "base.html" %} {% set active_page = "groups" %} {% block page_title %}Gruppen{% endblock %} {% block page_sub %}
{{ groups|length + 1 }} Gruppen · Rechteverwaltung
{% endblock %} {% block content %} {# Rendert einen Bereich (Geräte/Logs/Einstellungen) als kompakte Tabelle: Zeilen = Bereich selbst (nur die R-Spalte aktiv, das ist der Kill-Switch) + je eine Zeile pro Unterpunkt (Clients, Switche, ...). Spalten = die kanonischen Rechte R/W/E/D nebeneinander (permission_row_types). "Ändern" (E) deckt Löschen überall mit ab — es gibt nirgends ein eigenes Löschen-Recht. "D" existiert nur bei Clients und bedeutet dort NICHT Löschen, sondern PoE-Neustart über das Dashboard-Popup. Zellen ohne passendes Recht für die jeweilige Zeile (z.B. "W" bei "Geräte" selbst, oder "D" bei Switche/Zugangsdaten) werden als ausgegraute, nicht anklickbare Checkbox dargestellt statt zu fehlen — dadurch bleiben alle Spalten bündig untereinander. readonly=true zeigt nur den aktuellen Stand (Admin/Systemgruppen bzw. fehlendes groups.edit). Die JS-Funktion applyPermissionGating() sperrt Kind-Rechte, solange das Bereich-Lesen (Kill-Switch) nicht gesetzt ist. #} {% macro permission_table(group, checked_keys, readonly) %}
{% for row_key, row_letter, row_label in permission_row_types %} {% endfor %} {% for row_key, row_letter, row_label in permission_row_types %} {% endfor %} {% for child_key, child in group['children'].items() %} {% for row_key, row_letter, row_label in permission_row_types %} {% set perm_key = child['rows'].get(row_key) %} {% endfor %} {% endfor %}
{{ group['label'] }}{{ row_letter }}
{{ group['label'] }} (gesamt) {% if row_key == 'view' %} {% else %} {% endif %}
{{ child['label'] }} {% if perm_key %} {% else %} {% endif %}
{% endmacro %} {% macro permission_tree(checked_keys, readonly) %} {% for group_key, group in permission_catalog.items() %} {{ permission_table(group, checked_keys, readonly) }} {% endfor %} {% endmacro %}

Gruppen

Über Gruppen lassen sich Rechte für jeden Bereich der App granular vergeben. Ein Benutzer kann mehreren Gruppen angehören — die Rechte addieren sich. Auf „Rechte“ klicken, um eine Gruppe aufzuklappen und die Berechtigungen im Detail zu sehen bzw. zu ändern. „Admin“ und „Benutzer“ sind feste Systemgruppen und nicht veränderbar. Die Zeile „... (gesamt)“ muss gelesen werden dürfen, bevor die Zeilen darunter greifen — ausgegraute Kästchen gelten für die jeweilige Zeile nicht. R = Lesen (Read) · W = Schreiben/Anlegen (Write) · E = Ändern inkl. Löschen (Edit) · D = Dashboard-Neustart (nur bei Clients; automatische Neustarts bei Ausfall bleiben davon unberührt)
{% if current_user.has_permission('groups.create') %} {% endif %}
{% for g in groups %} {% set can_edit_this = current_user.has_permission('groups.edit') and not g.is_system %} {% else %} {% endfor %}
Gruppe Mitglieder Aktionen
Admin Systemrolle {{ admin_virtual_group.member_names|length }}
{{ g.name }} {% if g.is_system %}Standard{% endif %} {{ g.member_names|length }}
{% if current_user.has_permission('groups.edit') and not g.is_default and not g.is_system %}
{% endif %}
Noch keine weiteren Gruppen angelegt.
{% for g in groups %} {% endfor %} {% endblock %} {% block scripts %} {% endblock %}