Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
41 lines
2.1 KiB
HTML
41 lines
2.1 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Admin — brugere{% endblock %}
|
|
{% block body %}
|
|
<h1>Brugere</h1>
|
|
<p class="lead">Opret og administrér brugere. Adgang til services styres via <strong class="text-text">grupper</strong> (en app er bundet til en gruppe).</p>
|
|
{% if saved %}<div class="flash">{{ saved }}</div>{% endif %}
|
|
|
|
<h2>Opret ny bruger</h2>
|
|
<form method="post" action="/admin/users" class="stat" style="display:block">
|
|
<div style="display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))">
|
|
<label>Brugernavn<input name="username" required autocomplete="off"></label>
|
|
<label>Navn<input name="name" autocomplete="off"></label>
|
|
<label>Email<input name="email" type="email" autocomplete="off"></label>
|
|
<label>Adgangskode<input name="password" type="text" autocomplete="new-password" placeholder="(valgfri)"></label>
|
|
</div>
|
|
<p class="muted" style="margin:.9rem 0 .4rem;font-size:.85rem">Adgang (grupper) — sæt flueben for de services brugeren skal kunne tilgå:</p>
|
|
<div style="display:grid;gap:.3rem .9rem;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr))">
|
|
{% for g in groups %}
|
|
<label style="display:flex;gap:.4rem;align-items:center;font-size:.9rem"><input type="checkbox" name="groups" value="{{ g.pk }}" style="width:auto"> {{ g.name }}</label>
|
|
{% endfor %}
|
|
</div>
|
|
<p style="margin-top:1rem"><button class="btn" type="submit">Opret bruger</button></p>
|
|
</form>
|
|
|
|
<h2>Alle brugere ({{ users|length }})</h2>
|
|
<table>
|
|
<thead><tr><th>Bruger</th><th>Email</th><th>Grupper</th><th>Status</th><th></th></tr></thead>
|
|
<tbody>
|
|
{% for u in users %}
|
|
<tr>
|
|
<td><strong>{{ u.username }}</strong>{% if u.name %} <span class="muted">· {{ u.name }}</span>{% endif %}</td>
|
|
<td class="muted">{{ u.email or '—' }}</td>
|
|
<td class="muted" style="font-size:.85rem">{{ u.group_names|join(', ') if u.group_names else '—' }}</td>
|
|
<td>{% if u.active %}<span style="color:var(--accent)">aktiv</span>{% else %}<span class="muted">inaktiv</span>{% endif %}</td>
|
|
<td><a href="/admin/users/{{ u.pk }}">Rediger →</a></td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endblock %}
|