Implemented permissions and user administration #2
|
|
@ -0,0 +1,10 @@
|
||||||
|
import type { LayoutServerLoad } from "./$types"
|
||||||
|
|
||||||
|
import Permissions from "$lib/permissions"
|
||||||
|
|
||||||
|
export const load: LayoutServerLoad = ({ locals }) => {
|
||||||
|
return {
|
||||||
|
loggedInAs: locals.user?.username,
|
||||||
|
isAdmin: Permissions.any(locals.user?.permissions ?? 0, Permissions.USERADMIN.ALL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
let { children } = $props();
|
import type { LayoutProps } from './$types'
|
||||||
|
|
||||||
|
let { data, children }: LayoutProps = $props();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#snippet nav(classlist: string)}
|
{#snippet nav(classlist: string)}
|
||||||
|
|
@ -11,13 +13,20 @@
|
||||||
<li><a href="/dokumente">Dokumente</a></li>
|
<li><a href="/dokumente">Dokumente</a></li>
|
||||||
|
|
||||||
<li class="separator"></li>
|
<li class="separator"></li>
|
||||||
|
{#if data?.loggedInAs != null}
|
||||||
|
<li>Eingeloggt als: {data.loggedInAs}</li>
|
||||||
<li><a href="/user">Account</a></li>
|
<li><a href="/user">Account</a></li>
|
||||||
|
{/if}
|
||||||
|
{#if data?.isAdmin === true}
|
||||||
<li><a href="/useradmin">Benutzerverwaltung</a></li>
|
<li><a href="/useradmin">Benutzerverwaltung</a></li>
|
||||||
|
{/if}
|
||||||
|
{#if data?.loggedInAs != null}
|
||||||
<li>
|
<li>
|
||||||
<form method="POST" action="/login?/logout">
|
<form method="POST" action="/login?/logout">
|
||||||
<button type="submit">Logout</button>
|
<button type="submit">Logout</button>
|
||||||
</form>
|
</form>
|
||||||
</li>
|
</li>
|
||||||
|
{/if}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{/snippet}
|
{/snippet}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue