diff --git a/app/middleware/auth.global.ts b/app/middleware/auth.global.ts
index 023c5fb..7b736c2 100644
--- a/app/middleware/auth.global.ts
+++ b/app/middleware/auth.global.ts
@@ -4,15 +4,11 @@ export default defineNuxtRouteMiddleware(async (to, from) => {
const { loggedIn, fetch, user } = useUserSession();
const meta = to.meta;
- await fetch()
+ await fetch();
- if(!!meta.guestsGoesTo && !loggedIn.value)
+ if(meta.requiresAuth && !loggedIn.value)
{
- return navigateTo(meta.guestsGoesTo);
- }
- else if(meta.requireAuth && !loggedIn.value)
- {
- return abortNavigation({ statusCode: 401, message: 'Unauthorized', });
+ return navigateTo({ name: 'user-login', query: { t: encodeURIComponent(to.path) } });
}
else if(!!meta.usersGoesTo && loggedIn.value)
{
@@ -25,13 +21,9 @@ export default defineNuxtRouteMiddleware(async (to, from) => {
else if(!!meta.rights)
{
if(!user.value)
- {
return abortNavigation({ statusCode: 401, message: 'Unauthorized', });
- }
else if(!hasPermissions(user.value.permissions, meta.rights))
- {
return abortNavigation({ statusCode: 401, message: 'Unauthorized', });
- }
}
return;
diff --git a/app/pages/campaign/[id]/index.client.vue b/app/pages/campaign/[id]/index.client.vue
index 3b424d6..8843c6e 100644
--- a/app/pages/campaign/[id]/index.client.vue
+++ b/app/pages/campaign/[id]/index.client.vue
@@ -3,7 +3,7 @@ import { unifySlug } from '#shared/general.util';
import { CampaignSheet } from '#shared/campaign.util';
definePageMeta({
- guestsGoesTo: '/user/login',
+ requiresAuth: true,
});
const id = unifySlug(useRoute().params.id ?? '');
diff --git a/app/pages/campaign/index.client.vue b/app/pages/campaign/index.client.vue
index 6401da4..55c8de5 100644
--- a/app/pages/campaign/index.client.vue
+++ b/app/pages/campaign/index.client.vue
@@ -2,7 +2,7 @@
import { Toaster } from '#shared/components.util';
definePageMeta({
- guestsGoesTo: '/user/login',
+ requiresAuth: true,
});
const { user, loggedIn } = useUserSession();
diff --git a/app/pages/character/[id]/edit.client.vue b/app/pages/character/[id]/edit.client.vue
index 46e4e13..bbdc72f 100644
--- a/app/pages/character/[id]/edit.client.vue
+++ b/app/pages/character/[id]/edit.client.vue
@@ -3,7 +3,7 @@ import { CharacterBuilder } from '#shared/character.util';
import { unifySlug } from '#shared/general.util';
definePageMeta({
- guestsGoesTo: '/user/login',
+ requiresAuth: true,
validState: true,
});
const id = unifySlug(useRouter().currentRoute.value.params.id ?? "new");
diff --git a/app/pages/character/index.client.vue b/app/pages/character/index.client.vue
index 4023a02..6f6011d 100644
--- a/app/pages/character/index.client.vue
+++ b/app/pages/character/index.client.vue
@@ -4,7 +4,7 @@ import { Toaster } from '#shared/components.util';
import type { CharacterConfig } from '~/types/character';
definePageMeta({
- guestsGoesTo: '/user/login',
+ requiresAuth: true,
})
const { data: characters, error, status } = await useFetch(`/api/character`);
const config = characterConfig as CharacterConfig;
diff --git a/app/pages/character/manage.client.vue b/app/pages/character/manage.client.vue
index 74aae30..db2baf8 100644
--- a/app/pages/character/manage.client.vue
+++ b/app/pages/character/manage.client.vue
@@ -3,7 +3,7 @@ import { HomebrewBuilder } from '#shared/feature.util';
definePageMeta({
- guestsGoesTo: '/user/login',
+ requiresAuth: true,
});
const container = useTemplateRef('container');
diff --git a/app/pages/user/changing-password.vue b/app/pages/user/changing-password.vue
index 34f4e9a..4fcfcee 100644
--- a/app/pages/user/changing-password.vue
+++ b/app/pages/user/changing-password.vue
@@ -30,7 +30,7 @@ import { Toaster } from '#shared/components.util';
definePageMeta({
layout: 'login',
- guestsGoesTo: '/user/login',
+ requiresAuth: true,
});
const { user } = useUserSession();
diff --git a/app/pages/user/login.vue b/app/pages/user/login.vue
index 1cc03c2..78f98e9 100644
--- a/app/pages/user/login.vue
+++ b/app/pages/user/login.vue
@@ -7,7 +7,7 @@
$router.go(-1)">