Implemented permissions and user administration #2

Merged
Patrick merged 17 commits from dev into main 2025-08-25 17:33:06 +02:00
1 changed files with 78 additions and 63 deletions
Showing only changes of commit 1049b04968 - Show all commits

View File

@ -48,6 +48,29 @@
</tbody>
</table>
<table>
<colgroup>
<col class="leader3" />
<col class="form3" />
<col class="form3" />
</colgroup>
<thead>
<tr><th colspan="3">Benutzer</th></tr>
</thead>
<tbody>
<tr>
<td>Benutzername</td>
<td colspan="2"><input type="text" name="username" value={data.user.username} /></td>
</tr>
<tr>
<td>Passwort ändern</td>
<td><input type="password" name="password1" /></td>
<td><input type="password" name="password2" placeholder="Wiederholen"/></td>
</tr>
</tbody>
</table>
{#if data.user?.id == data.loggedInAs.id || Permissions.has(data.loggedInAs.permissions ?? 0, Permissions.USERADMIN.EDIT_PASSWORD)}
<table>
<colgroup>
<col class="leader2" />
@ -64,8 +87,16 @@
<td>
<div class="permission-selector">
{#each Permissions.iterate(Permissions.USERADMIN) as permission}
<label for={permission.value}>
<input type="checkbox" id={permission.value} name="USERADMIN" value={permission.value} data-bits={Permissions.deconstruct(permission.value).join(" ")} onclick={(event) => {
<label>
<input
type="checkbox"
id={permission.value}
name="USERADMIN"
value={permission.value}
checked={Permissions.has(data.user.permissions, permission.value)}
disabled={data.user?.id == data.loggedInAs.id}
data-bits={Permissions.deconstruct(permission.value).join(" ")}
onclick={(event) => {
const target = event.target as HTMLInputElement
const container = target.parentElement?.parentElement ?? target
@ -110,28 +141,8 @@
</tr>
</tbody>
</table>
{/if}
<table>
<colgroup>
<col class="leader3" />
<col class="form3" />
<col class="form3" />
</colgroup>
<thead>
<tr><th colspan="3">Benutzer</th></tr>
</thead>
<tbody>
<tr>
<td>Benutzername</td>
<td colspan="2"><input type="text" name="username" value={data.user.username} /></td>
</tr>
<tr>
<td>Passwort ändern</td>
<td><input type="password" name="password1" /></td>
<td><input type="password" name="password2" placeholder="Wiederholen"/></td>
</tr>
</tbody>
</table>
<button type="submit">Speichern</button>
@ -182,6 +193,10 @@ input[type="text"] {
border-bottom: solid 1px black;
}
label:has(input[type="checkbox"][disabled]) {
color: gray;
}
button {
width: 15%;
margin-left: 85%;