{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import field, textarea_field, pill, search_box, modal, empty_state, alert %} {% macro credential_form(entry=None) %}
{{ field('name', 'Name', value=entry.name if entry else '', required=True, hint_text='Frei wählbar, z. B. "Switch-Admin" oder "Linux-Wartung".') }} {{ field('username', 'Benutzer', value=entry.username if entry else '', autocomplete='off') }} {{ field('secret', 'Passwort' ~ (' (leer lassen = unverändert)' if entry else ''), type='password', autocomplete='new-password', required=False if entry else True) }} {{ textarea_field('description', 'Beschreibung', value=entry.description if entry else '', rows=2, extra_class='field--full') }}
{% endmacro %} {% block page_title %}Zugangsdaten{% endblock %} {% block page_sub %}{{ credentials | length }} Einträge · verschlüsselt mit AES-256-GCM{% endblock %} {% block topbar_extra %} {{ search_box('credentials-table', 'Name, Benutzer ...') }} {% if current_user.has('credentials.create') %} {% endif %} {% endblock %} {% block content %} {{ alert('Passwörter liegen AES-256-GCM-verschlüsselt und an ihren Verwendungszweck gebunden. Sie im Klartext zu sehen braucht ein eigenes Recht, eine frische Passwortbestätigung und wird protokolliert. Die Kategorie setzen Sie ausdrücklich -- sie wird bewusst nicht geraten, weil davon abhängt, welche Geräte auf der Wartungsseite erscheinen.', 'info') }}
{% for entry in credentials %} {% endfor %}
Name Benutzer Kategorie Verwendet von Passwort Aktion
{{ entry.name }}
{% if entry.description %}
{{ entry.description }}
{% endif %}
{{ entry.username or '–' | safe }} {{ dict(categories).get(entry.category, entry.category) }} {{ entry.in_use }} {% if entry.has_secret %}{{ pill('gesetzt', 'online') }} {% else %}{{ pill('fehlt', 'warning') }}{% endif %} {% if current_user.has('credentials.secrets') and entry.has_secret %}
{% endif %} {% if current_user.has('credentials.edit') %} {% endif %} {% if current_user.has('credentials.delete') %}
{% endif %}
{% if not credentials %} {{ empty_state('Keine Zugangsdaten', 'Legen Sie den ersten Eintrag an.', 'key') }} {% endif %}
{% endblock %} {% block dialogs %} {% if current_user.has('credentials.create') %} {% call modal('credential-new', 'Zugangsdaten anlegen') %}
{% endcall %} {% endif %} {% if current_user.has('credentials.edit') %} {% for entry in credentials %} {% call modal('credential-edit-' ~ entry.id, entry.name) %}
{% endcall %} {% endfor %} {% endif %} {% endblock %}