kl-self-service/templates/profile.html
2024-12-05 22:56:57 +01:00

147 lines
5.3 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<title>{{ user_attrs.cn }}</title>
<link rel="stylesheet" href="{{ url_for('static', filename='main.css') }}" />
</head>
<body>
{% for category, mesg in get_flashed_messages(with_categories=True) %}
<div class="flash-message flash-message-{{ category }}">{{ mesg }}</div>
{% endfor %}
<h2>Kombilösen: {{ user_attrs.cn }}</h2>
<a href="/logout" class="btn">Logout</a><br><br>
<div class="flex flex-row">
<div>
<form method="POST" class="form-control">
<table class="table-items-top">
<tr>
<td>
Benutzername:
</td>
<td>
{{ user_attrs.uid }}
</td>
</tr>
<tr>
<td>
Anzeigename:
</td>
<td>
<input type="text" name="cn" value="{{ user_attrs.cn }}">
</td>
</tr>
<tr>
<td>
Nachname:
</td>
<td>
<input type="text" name="sn" value="{{ user_attrs.sn }}">
</td>
</tr>
<tr>
<td>
<label>Vorname:</label>
</td>
<td>
<input type="text" name="givenName" value="{{ user_attrs.givenName }}">
</td>
</tr>
<tr>
<td>
<label>Mail:</label>
</td>
<td>
{{ user_attrs.mail }}
</td>
</tr>
<tr>
<td>
<label>SIP Password:</label>
</td>
<td>
<input type="password" name="sipPassword" value="{{ user_attrs.sipPassword }}" readonly>
<button class="btn btn-warning" onclick="show_sip_password(); e.preventDefault()" type="button">Anzeigen</button>
<button class="btn btn-danger" onclick="regenerate_sip_password(); e.preventDefault()" type="button">Neu generieren</button>
</td>
</tr>
<tr>
<td>
<label>Zugriff auf interne Daten:</label>
</td>
<td>
{{ '✅' if user_attrs.innerCircle == True else '❌' }}
</td>
</tr>
<tr>
<td>
<label>Geschützter Account:</label>
</td>
<td>
{{ '✅' if user_attrs.protectedAccount == True else '❌' }}
</td>
</tr>
</table>
<button type="submit" class="btn btn-success">Speichern</button>
<h3>Passwort ändern</h3>
<table class="table-items-top">
<tr>
<td>
<label>Neues Passwort:</label>
</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
<label>Neues Passwort (wiederholen):</label>
</td>
<td>
<input type="password" name="password_repeat">
</td>
</tr>
</table>
<button type="submit" class="btn btn-success">Speichern</button>
<h3>SSH Public Keys</h3>
<textarea name="sshPublicKey" cols="120" rows="8" wrap="off">
{%- for key in user_attrs.sshPublicKey -%}
{{- key + '\n' }}
{%- endfor -%}
</textarea>
<br>
<button type="submit" class="btn btn-success">Speichern</button>
</form>
</div>
<div>
<h3>Gruppen</h3>
<ul>
{% for group in groups %}
<li>{{ group }}</li>
{% endfor %}
</ul>
</div>
</div>
</body>
<script>
function show_sip_password() {
document.getElementsByName("sipPassword")[0].type = document.getElementsByName("sipPassword")[0].type === "password" ? "text" : "password"
}
function regenerate_sip_password() {
document.getElementsByName("sipPassword")[0].value = generatePassword(12)
}
function generatePassword (
length = 20,
characters = '0123456789abcdefghijklmnopqrstuvwxyz'
) {
return Array.from(crypto.getRandomValues(new Uint32Array(length)))
.map((x) => characters[x % characters.length])
.join('')
}
</script>
</html>