Add return URL's to any unauthenticated requests in the portal or builder

This commit is contained in:
Andrew Kingston 2021-05-20 15:01:59 +01:00
parent 64496759fd
commit 71296670c2
3 changed files with 27 additions and 6 deletions

View File

@ -28,7 +28,8 @@
!$isActive("./auth") &&
!$isActive("./invite")
) {
$redirect("./auth/login")
const returnUrl = encodeURIComponent(window.location.pathname)
$redirect("./auth/login?", { returnUrl })
}
}
</script>

View File

@ -0,0 +1,18 @@
<script>
import { auth } from "stores/portal"
import { onMount } from "svelte"
import { redirect } from "@roxi/routify"
// If already authenticated, redirect away from the auth section.
// Check this onMount rather than a reactive statement to avoid trumping
// the login return URL functionality.
onMount(() => {
if ($auth.user) {
$redirect("../")
}
})
</script>
{#if !$auth.user}
<slot />
{/if}

View File

@ -37,11 +37,13 @@
onMount(async () => {
// Prevent non-builders from accessing the portal
if (!$auth.user?.builder?.global) {
$redirect("../")
} else {
await organisation.init()
loaded = true
if ($auth.user) {
if (!$auth.user?.builder?.global) {
$redirect("../")
} else {
await organisation.init()
loaded = true
}
}
})
</script>