diff --git a/frontend/src/lib/components/DeviceForm.svelte b/frontend/src/lib/components/DeviceForm.svelte index 4e883e99..70c4e1a0 100644 --- a/frontend/src/lib/components/DeviceForm.svelte +++ b/frontend/src/lib/components/DeviceForm.svelte @@ -248,6 +248,7 @@

UpSnap can also check if given ports are open. You can define them below.

+ {#each device.expand.ports as _, index} {/each} diff --git a/frontend/src/lib/components/Navbar.svelte b/frontend/src/lib/components/Navbar.svelte index 0da3ffad..8166dae8 100644 --- a/frontend/src/lib/components/Navbar.svelte +++ b/frontend/src/lib/components/Navbar.svelte @@ -48,15 +48,16 @@ 'winter' ]; let activeTheme: string | null = ''; + let avatar = $pocketbase.authStore.model?.avatar; onMount(() => { themeChange(false); activeTheme = document.documentElement.getAttribute('data-theme'); - }); - $: avatar = $pocketbase.authStore?.model?.avatar - ? $pocketbase.authStore?.model.avatar - : Math.floor(Math.random() * 9).toString(); + $pocketbase.authStore.onChange(() => { + avatar = $pocketbase.authStore.model?.avatar; + }); + }); async function logout() { await $pocketbase.collection('devices').unsubscribe('*'); @@ -203,19 +204,24 @@ Profile pic
- +

+ {$isAdmin ? $pocketbase.authStore.model.email : $pocketbase.authStore.model.username} +

+ + +
{/if} diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index af9315c0..3d9f9f12 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -28,7 +28,7 @@ permission.set(data as Permission); }) .catch(() => { - toast.error('No permissons set for user. Ask your admin to grant you permissions.'); + return; }); $pocketbase.collection('permissions').subscribe('*', (event) => { @@ -64,9 +64,17 @@ } if ($pocketbase.authStore.model?.collectionName === 'users') { - await $pocketbase.collection('users').authRefresh(); + await $pocketbase + .collection('users') + .authRefresh() + .catch(() => { + goto('/login'); + }); } else { - await $pocketbase.admins.authRefresh(); + await $pocketbase.admins.authRefresh().catch(() => { + $pocketbase.authStore.clear(); + goto('/login'); + }); } }); diff --git a/frontend/src/routes/account/+page.svelte b/frontend/src/routes/account/+page.svelte index 9e21bd4f..07f352dc 100644 --- a/frontend/src/routes/account/+page.svelte +++ b/frontend/src/routes/account/+page.svelte @@ -1,5 +1,194 @@ -{$pocketbase.authStore.model?.email || $pocketbase.authStore.model?.username} +

Account

+
+
+
+
+
+ Avatar {newAvatar ?? $pocketbase.authStore.model?.avatar} +
+
+
+

+ {$isAdmin ? $pocketbase.authStore.model?.email : $pocketbase.authStore.model?.username} +

+

{$isAdmin ? 'Admin' : 'User'}

+
+
+

Avatar

+
+
+ {#each [...Array(10).keys()] as i} +
+
(newAvatar = i)} + role="none" + > + Avatar {i} +
+
+ {/each} +
+ +
+
+
+
+
+

Change password

+

After the password has been changed, you will need to log in again.

+
+
+ {#if !$isAdmin} + + + {/if} + + +
+
+ + +
+ +
+
+