user displayed in navbar with option to logout

This commit is contained in:
2023-07-19 14:52:50 +02:00
parent 8f045d7111
commit 2b0c954aa5
11 changed files with 189 additions and 28 deletions

View File

@ -0,0 +1,9 @@
import type {LayoutServerLoad} from './$types';
import { authenticateUser } from '$lib/js/authenticate';;
export const load = (async ({cookies}) => {
const user = await authenticateUser(cookies)
return {
user
}
}) satisfies LayoutServerLoad;

View File

@ -1,6 +1,11 @@
<script>
import Header from '$lib/components/Header.svelte'
import UserHeader from '$lib/components/UserHeader.svelte';
export let data
let username = ""
if(data.user){
username = data.user.username
}
</script>
<Header>
@ -10,5 +15,6 @@ import Header from '$lib/components/Header.svelte'
<li><a href="/git">Git</a></li>
<li><a href="/transmission">Transmission</a></li>
</ul>
<UserHeader {username} slot=right_side></UserHeader>
<slot></slot>
</Header>

View File

@ -0,0 +1,11 @@
import type {LayoutServerLoad} from './$types';
import { authenticateUser } from '$lib/js/authenticate';;
export const load = (async ({cookies}) => {
const user = await authenticateUser(cookies)
console.log("LOAD LAYOUT")
console.log(user)
return {
user
}
}) satisfies LayoutServerLoad;

View File

@ -1,6 +1,9 @@
<script>
import Header from '$lib/components/Header.svelte'
import UserHeader from '$lib/components/UserHeader.svelte';
export let data
let username = ""
if(data.user) username = data.user.username
</script>
<Header>
@ -11,5 +14,6 @@ import Header from '$lib/components/Header.svelte'
<li><a href="/rezepte/icon">Icon</a></li>
<li><a href="/rezepte/tag">Stichwörter</a></li>
</ul>
<UserHeader {username} slot=right_side></UserHeader>
<slot></slot>
</Header>

View File

@ -34,7 +34,6 @@ h1{
{/each}
</MediaScroller>
{/each}
<p>{data.all_brief.length}</p>
{#if data.user && data.user.access.includes("rezepte")}
<AddButton></AddButton>
{/if}

View File

@ -1,15 +0,0 @@
// import { error } from '@sveltejs/kit';
import type { PageLoad } from "./$types";
//import { Recipe } from '../../../models/Recipe';
//import { dbConnect, dbDisconnect } from '../../../utils/db';
import { error } from "@sveltejs/kit";
export async function load({ fetch, params, locals }) {
const res = await fetch(`/api/items/${params.name}`);
let item = await res.json();
item.user = locals.user
if(res.status != 200){
throw error(res.status, item.message)
}
return item;
};

View File

@ -242,6 +242,4 @@ h4{
</div>
</TitleImgParallax>
{#if data.user && data.user.access.includes("rezepte")}
<EditButton href="/rezepte/edit/{data.short_name}"></EditButton>
{/if}

View File

@ -0,0 +1,10 @@
import { error } from "@sveltejs/kit";
export async function load({ fetch, params}) {
const res = await fetch(`/api/items/${params.name}`);
let item = await res.json();
if(!res.ok){
throw error(res.status, item.message)
}
return item;
}