{% extends "base.html" %} {% set active_page = "settings_system" %} {% block page_title %}Systemeinstellungen{% endblock %} {% block page_sub %}
Netzwerkkonfiguration dieses Hosts
{% endblock %} {% block content %} {% import "_hint_icon.html" as hi %}

Host

Name und Zeitzone dieses Hosts.
{% set can_edit_host = current_user.has_permission('settings_system.edit') %} {% if can_edit_host %}

{% else %}
{% endif %}

Netzwerkeinstellungen

IP/DNS/DHCP-Umschaltung dieses Hosts.
{% if net_backend == 'unknown' %} Kein unterstütztes Backend erkannt {% else %} {{ {'networkmanager': 'NetworkManager', 'dhcpcd': 'dhcpcd', 'netplan': 'netplan'}[net_backend] }} {% endif %}
{% for state in active_net_states %}
{{ state.interface }} — {{ state.ip }}/{{ state.prefix }}{% if state.gateway %}, Gateway {{ state.gateway }}{% endif %} {{ {'static': 'Statisch', 'dhcp': 'DHCP', 'unknown': 'Modus unbekannt'}[state.mode] }} {% if state.dns %} DNS: {{ state.dns|join(', ') }} {% endif %}
{% else %}
Kein aktives Interface mit IPv4-Adresse gefunden.
{% endfor %}
{% if pending_network_token %}

Neue Netzwerkkonfiguration wurde angewendet. Wenn diese Seite gerade noch lädt, funktioniert die Verbindung — bitte bestätigen, bevor automatisch zurückgerollt wird (nach {{ net_revert_seconds }}s ohne Bestätigung).

{% elif net_backend != 'unknown' and current_user.has_permission('settings_system.edit') %}

⚠ Kann die Erreichbarkeit dieses Hosts unterbrechen. Ohne Bestätigung wird automatisch nach {{ net_revert_seconds }}s zurückgerollt.

{% elif net_backend == 'unknown' %}

Weder NetworkManager, dhcpcd noch netplan/systemd-networkd aktiv erkannt — Netzwerkänderungen über diese Seite sind deaktiviert. Bitte die Netzwerkkonfiguration dieses Hosts manuell vornehmen.

{% else %}

Für Änderungen fehlt das Recht „Systemeinstellungen ändern“.

{% endif %}

Logs

Rotation & Aufbewahrung von Live-, Änderungs- und App-Log.
{% if current_user.has_permission('settings_system.edit') %}
{% else %}
{% endif %}
Live: {{ log_paths.live }}
Änderungen: {{ log_paths.changes }}
App: {{ log_paths.app }}

Anbieter & Lizenzserver

Wird in jede ausgestellte Kundenlizenz eingebettet (Kontakt + wo der Client aktivieren/heartbeaten soll).
{% if current_user.has_permission('settings_system.edit') %}
{% if vendor.logo_base64 %}
Logo
{% endif %}
{% else %}

Für Änderungen fehlt das Recht „Systemeinstellungen ändern“.

{% endif %}

E-Mail-Versand (Microsoft Graph)

Für den direkten Versand ausgestellter Lizenzen an Kunden per E-Mail (optional -- Download funktioniert immer, auch ohne dies einzurichten).
Einrichtungsanleitung (Azure AD App-Registrierung)
  1. Im Azure-Portal unter „Azure Active Directory → App-Registrierungen“ eine neue App anlegen.
  2. Unter „API-Berechtigungen“ die Anwendungsberechtigung (nicht delegiert!) Mail.Send für Microsoft Graph hinzufügen und per „Administratorzustimmung erteilen“ bestätigen.
  3. Unter „Zertifikate & Geheimnisse“ einen neuen Client-Secret-Wert erzeugen und sofort kopieren (wird nur einmal angezeigt).
  4. Tenant-ID und Client-ID stehen auf der Übersichtsseite der App-Registrierung.
  5. Als Absender-Postfach eine echte, lizenzierte Mailbox im selben Tenant angeben (z.B. lizenz@firma.de).
  6. Optional, aber empfohlen: per Exchange-Online-„Application Access Policy“ die App-Berechtigung auf genau dieses Postfach einschränken, statt tenant-weit jede Mailbox versenden zu lassen.
  7. Da dies ein reiner App-zu-App-Login ohne Benutzeranmeldung ist (Client-Credentials-Flow), spielt eine ggf. für Benutzer aktivierte MFA-Pflicht hier keine Rolle.
{% if current_user.has_permission('settings_system.edit') %}
{% else %}

Für Änderungen fehlt das Recht „Systemeinstellungen ändern“.

{% endif %}
{% if current_user.is_admin %} {% macro nav_order_buttons() %} {% endmacro %}

Navbar-Reihenfolge

Reihenfolge der Sidebar-Menüpunkte inkl. Unterpunkte — gilt für alle Benutzer.
{% endif %}
{% endblock %} {% block scripts %} {% endblock %}