From d88494af24cf9219ab7bf6daae720ac8b3fe84d4 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 14 Oct 2022 17:57:04 -0800
Subject: [PATCH] use auth middleware
---
frontend/layouts/default.vue | 64 ++++++++++++++++++++++++++-
frontend/layouts/home.vue | 69 ------------------------------
frontend/middleware/auth.ts | 15 +++++++
frontend/pages/home.vue | 12 +-----
frontend/pages/item/[id]/edit.vue | 2 +-
frontend/pages/item/[id]/index.vue | 2 +-
frontend/pages/item/new.vue | 2 +-
frontend/pages/items.vue | 3 +-
frontend/pages/label/[id].vue | 2 +-
frontend/pages/location/[id].vue | 2 +-
frontend/pages/profile.vue | 2 +-
11 files changed, 87 insertions(+), 88 deletions(-)
delete mode 100644 frontend/layouts/home.vue
create mode 100644 frontend/middleware/auth.ts
diff --git a/frontend/layouts/default.vue b/frontend/layouts/default.vue
index a65f7e3..1d87350 100644
--- a/frontend/layouts/default.vue
+++ b/frontend/layouts/default.vue
@@ -1,10 +1,70 @@
-
+
+
diff --git a/frontend/layouts/home.vue b/frontend/layouts/home.vue
deleted file mode 100644
index 9f0adc7..0000000
--- a/frontend/layouts/home.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
diff --git a/frontend/middleware/auth.ts b/frontend/middleware/auth.ts
new file mode 100644
index 0000000..f67fa01
--- /dev/null
+++ b/frontend/middleware/auth.ts
@@ -0,0 +1,15 @@
+import { useAuthStore } from "~~/stores/auth";
+
+export default defineNuxtRouteMiddleware(async () => {
+ const auth = useAuthStore();
+ const api = useUserApi();
+
+ if (!auth.self) {
+ const { data, error } = await api.user.self();
+ if (error) {
+ navigateTo("/");
+ }
+
+ auth.$patch({ self: data.item });
+ }
+});
diff --git a/frontend/pages/home.vue b/frontend/pages/home.vue
index c3a4819..8bf0a54 100644
--- a/frontend/pages/home.vue
+++ b/frontend/pages/home.vue
@@ -5,8 +5,9 @@
import { useLocationStore } from "~~/stores/locations";
definePageMeta({
- layout: "home",
+ middleware: ["auth"],
});
+
useHead({
title: "Homebox | Home",
});
@@ -15,15 +16,6 @@
const auth = useAuthStore();
- if (auth.self === null) {
- const { data, error } = await api.user.self();
- if (error) {
- navigateTo("/");
- }
-
- auth.$patch({ self: data.item });
- }
-
const itemsStore = useItemStore();
const items = computed(() => itemsStore.items);
diff --git a/frontend/pages/item/[id]/edit.vue b/frontend/pages/item/[id]/edit.vue
index 8ffcba6..35daf29 100644
--- a/frontend/pages/item/[id]/edit.vue
+++ b/frontend/pages/item/[id]/edit.vue
@@ -6,7 +6,7 @@
import { capitalize } from "~~/lib/strings";
definePageMeta({
- layout: "home",
+ middleware: ["auth"],
});
const route = useRoute();
diff --git a/frontend/pages/item/[id]/index.vue b/frontend/pages/item/[id]/index.vue
index 5c9c938..ae22d0c 100644
--- a/frontend/pages/item/[id]/index.vue
+++ b/frontend/pages/item/[id]/index.vue
@@ -3,7 +3,7 @@
import { ItemAttachment } from "~~/lib/api/types/data-contracts";
definePageMeta({
- layout: "home",
+ middleware: ["auth"],
});
const route = useRoute();
diff --git a/frontend/pages/item/new.vue b/frontend/pages/item/new.vue
index 4762c1c..a1a6584 100644
--- a/frontend/pages/item/new.vue
+++ b/frontend/pages/item/new.vue
@@ -1,6 +1,6 @@