diff options
Diffstat (limited to 'src/router')
-rw-r--r-- | src/router/index.js | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/src/router/index.js b/src/router/index.js index 11d1a475..698aa700 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,28 +1,35 @@ import Vue from "vue"; import VueRouter from "vue-router"; +import store from "../store/index"; +import AppLayout from "../layouts/AppLayout.vue"; Vue.use(VueRouter); const routes = [ { path: "/", - name: "overview", - component: () => import("@/views/Overview") + name: "", + meta: { + requiresAuth: true + }, + component: AppLayout, + children: [ + { + path: "", + component: () => import("@/views/Overview") + }, + { + path: "/access-control/local-user-management", + name: "local-users", + component: () => import("@/views/AccessControl/LocalUserManagement") + } + ] }, { - path: "/access-control/local-user-management", - name: "local-users", - component: () => import("@/views/AccessControl/LocalUserManagement") + path: "/login", + name: "login", + component: () => import("@/views/Login") } - // { - // path: "/about", - // name: "about", - // // route level code-splitting - // // this generates a separate chunk (about.[hash].js) for this route - // // which is lazy-loaded when the route is visited. - // component: () => - // import(/* webpackChunkName: "about" */ "../views/About.vue") - // } ]; const router = new VueRouter({ @@ -32,4 +39,16 @@ const router = new VueRouter({ linkExactActiveClass: "nav__link--current" }); +router.beforeEach((to, from, next) => { + if (to.matched.some(record => record.meta.requiresAuth)) { + if (store.getters["authentication/isLoggedIn"]) { + next(); + return; + } + next("/login"); + } else { + next(); + } +}); + export default router; |