diff --git a/public/site/controllers/site.php b/public/site/controllers/site.php index ab60617..7d2d7c2 100644 --- a/public/site/controllers/site.php +++ b/public/site/controllers/site.php @@ -1,31 +1,27 @@ user() && $page->uri() != 'login') { - go('/login'); - } else { - $data = $page->toArray(); - $data['template'] = (string) $page->template(); - $data['newInspirations'] = (bool) page('inspirations')->children()->findBy('new', 'true'); + $data = $page->toArray(); + $data['template'] = (string) $page->template(); + $data['newInspirations'] = (bool) page('inspirations')->children()->findBy('new', 'true'); - if ($kirby->user()) { - $userData = [ - "role" => (string) $kirby->user()->role(), - "uuid" => (string) $kirby->user()->uuid() - ]; - - if ($kirby->user()->client()->exists() && $kirby->user()->client()->isNotEmpty()) { - $userData['client'] = [ - "name" => (string) $kirby->user()->client()->toPage()->title(), - "uuid" => (string) $kirby->user()->client()->toPage()->uuid() - ]; - } - } - - - return [ - 'genericData' => $data, - 'userData' => $userData ?? null + if ($kirby->user()) { + $userData = [ + "role" => (string) $kirby->user()->role(), + "uuid" => (string) $kirby->user()->uuid() ]; + + if ($kirby->user()->client()->exists() && $kirby->user()->client()->isNotEmpty()) { + $userData['client'] = [ + "name" => (string) $kirby->user()->client()->toPage()->title(), + "uuid" => (string) $kirby->user()->client()->toPage()->uuid() + ]; + } } + + + return [ + 'genericData' => $data, + 'userData' => $userData ?? null + ]; }; \ No newline at end of file diff --git a/public/site/templates/projects.json.php b/public/site/templates/projects.json.php index cabb5c7..ba74b69 100644 --- a/public/site/templates/projects.json.php +++ b/public/site/templates/projects.json.php @@ -1,7 +1,15 @@ user()) { + return json_encode([ + 'page' => $genericData, + 'user' => [] + ]); +} + function getProjectData($project) -{ +{ + $data = [ 'title' => $project->title()->value(), 'url' => $project->url(), diff --git a/src/router/router.js b/src/router/router.js index 0e25560..22dae89 100644 --- a/src/router/router.js +++ b/src/router/router.js @@ -1,9 +1,9 @@ -import { createWebHistory, createRouter } from "vue-router"; -import routes from "./routes"; -import { useApiStore } from "../stores/api"; -import { usePageStore } from "../stores/page"; -import { useUserStore } from "../stores/user"; -import { getActivePinia } from "pinia"; +import { createWebHistory, createRouter } from 'vue-router'; +import routes from './routes'; +import { useApiStore } from '../stores/api'; +import { usePageStore } from '../stores/page'; +import { useUserStore } from '../stores/user'; +import { getActivePinia } from 'pinia'; const router = createRouter({ history: createWebHistory(), @@ -12,10 +12,14 @@ const router = createRouter({ router.beforeEach(async (to, from, next) => { const pinia = getActivePinia(); - const api = useApiStore(pinia); const pageStore = usePageStore(pinia); const userStore = useUserStore(pinia); + if (to.path === '/login') next(); + + if (!userStore.user) next('/login'); + + const api = useApiStore(pinia); try { const res = await api.fetchData(to.path); diff --git a/src/router/routes.js b/src/router/routes.js index be32a81..2320150 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -13,6 +13,7 @@ const routes = [ component: Home, }, { + name: 'Login', path: '/login', component: Login, },