75 lines
4.1 KiB
HTML
Executable File
75 lines
4.1 KiB
HTML
Executable File
{% extends "base.html" %}
|
|
{% block content %}
|
|
<h1 class="page-title">Benutzerverwaltung</h1>
|
|
{% if !notice.is_empty() %}<p class="sz ok-text">{{ notice }}</p>{% endif %}
|
|
{% if !error.is_empty() %}<p class="err">{{ error }}</p>{% endif %}
|
|
<table class="tickets">
|
|
<thead><tr>
|
|
<th>E-Mail</th><th>Name</th><th>Rolle</th><th>Status</th><th>Telefon</th><th>Quelle</th><th>Letzte Anmeldung</th><th>Aktionen</th>
|
|
</tr></thead>
|
|
<tbody>
|
|
{% for u in rows %}
|
|
<tr>
|
|
<td>{{ u.email }}</td>
|
|
<td class="sz">{{ u.name }}</td>
|
|
<td><span class="pill {{ u.role }}">{{ u.role_label }}</span></td>
|
|
<td>{% if u.active %}<span class="pill geloest">aktiv</span>{% else %}<span class="pill ueberfaellig">gesperrt</span>{% endif %}</td>
|
|
<td class="sz">{{ u.telefon }}</td>
|
|
<td class="sz">{{ u.auth_source }}</td>
|
|
<td class="sz">{{ u.last_login }}</td>
|
|
<td>
|
|
<a class="btn ghost mini" href="/admin/users/{{ u.id }}/edit">Details</a>
|
|
<form method="post" action="/admin/users/{{ u.id }}/role" class="inline-form">
|
|
<input type="hidden" name="_csrf" value="{{ ctx.csrf }}">
|
|
<select name="role" data-autosubmit {% if u.is_self %}disabled title="Eigene Rolle kann nicht geaendert werden"{% endif %}>
|
|
{% for o in u.role_opts %}<option value="{{ o.0 }}" {% if o.2 %}selected{% endif %}>{{ o.1 }}</option>{% endfor %}
|
|
</select>
|
|
</form>
|
|
{% if !u.is_self %}
|
|
<form method="post" action="/admin/users/{{ u.id }}/active" class="inline-form">
|
|
<input type="hidden" name="_csrf" value="{{ ctx.csrf }}">
|
|
<button class="btn ghost mini" type="submit">{% if u.active %}Sperren{% else %}Entsperren{% endif %}</button>
|
|
</form>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
|
|
<details {% if form_open %}open{% endif %} style="margin-top:16px">
|
|
<summary class="btn summary-btn">+ Neuen Benutzer</summary>
|
|
<div class="panel" style="margin-top:10px">
|
|
<h3 style="margin-top:0">Neuen Benutzer anlegen</h3>
|
|
<div class="sz" style="margin-bottom:10px">Rollen gemaess ITIL: Administrator (Vollzugriff), Change Manager (Change-Freigaben, Repo-Aenderungen), Service-Desk-Agent (Ticketbearbeitung), Anwender (Self-Service: eigene Tickets, freigegebene Wissensartikel). Eine AD/LDAP-Anbindung ist als naechste Ausbaustufe vorgesehen.</div>
|
|
<form method="post" action="/admin/users">
|
|
<input type="hidden" name="_csrf" value="{{ ctx.csrf }}">
|
|
<div class="grid-2">
|
|
<div class="formrow"><label>E-Mail</label><input type="email" name="email" value="{{ fv_email }}" required></div>
|
|
<div class="formrow"><label>Rolle</label>
|
|
<select name="role">
|
|
{% for o in role_opts %}<option value="{{ o.0 }}" {% if o.0 == fv_role %}selected{% endif %}>{{ o.1 }}</option>{% endfor %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="grid-2">
|
|
<div class="formrow"><label>Passwort</label><input type="password" name="password" required></div>
|
|
<div class="formrow"><label>Passwort wiederholen</label><input type="password" name="password2" required></div>
|
|
</div>
|
|
<div class="hint">Mindestens {{ password_min_length }} Zeichen, nicht nur Ziffern. Der Benutzer sollte das Passwort nach der ersten Anmeldung selbst aendern.</div>
|
|
<h2 class="section-title">Details (optional)</h2>
|
|
<div class="grid-2">
|
|
<div class="formrow"><label>Vorname</label><input type="text" name="vorname" value="{{ fv_vorname }}"></div>
|
|
<div class="formrow"><label>Nachname</label><input type="text" name="nachname" value="{{ fv_nachname }}"></div>
|
|
</div>
|
|
<div class="grid-2">
|
|
<div class="formrow"><label>Telefon</label><input type="text" name="telefon" value="{{ fv_telefon }}"></div>
|
|
<div class="formrow"><label>Abteilung</label><input type="text" name="abteilung" value="{{ fv_abteilung }}"></div>
|
|
</div>
|
|
<div class="formrow"><label>Adresse</label><input type="text" name="adresse" value="{{ fv_adresse }}"></div>
|
|
<button class="btn" type="submit">Anlegen</button>
|
|
</form>
|
|
</div>
|
|
</details>
|
|
{% endblock %}
|