blob: 560da89ac3c9267654914804d8f58a1d7affe35c [file] [log] [blame]
Derick Montaguea2988f42020-01-17 13:46:30 -06001import Vue from "vue";
2import VueRouter from "vue-router";
Derick Montaguee080a1a2019-12-04 16:30:08 -06003import store from "../store/index";
4import AppLayout from "../layouts/AppLayout.vue";
Derick Montaguea2988f42020-01-17 13:46:30 -06005
6Vue.use(VueRouter);
7
8const routes = [
9 {
10 path: "/",
Derick Montaguee080a1a2019-12-04 16:30:08 -060011 name: "",
12 meta: {
13 requiresAuth: true
14 },
15 component: AppLayout,
16 children: [
17 {
18 path: "",
Derick Montaguec8636e52019-12-06 01:28:38 -060019 component: () => import("@/views/Overview"),
20 meta: {
21 title: "Server Overview"
22 }
Derick Montaguee080a1a2019-12-04 16:30:08 -060023 },
24 {
25 path: "/access-control/local-user-management",
26 name: "local-users",
Derick Montaguec8636e52019-12-06 01:28:38 -060027 component: () => import("@/views/AccessControl/LocalUserManagement"),
28 meta: {
29 title: "Manage Local Users"
30 }
Derick Montaguee080a1a2019-12-04 16:30:08 -060031 }
32 ]
Derick Montaguea2988f42020-01-17 13:46:30 -060033 },
34 {
Derick Montaguee080a1a2019-12-04 16:30:08 -060035 path: "/login",
36 name: "login",
Derick Montaguec8636e52019-12-06 01:28:38 -060037 component: () => import("@/views/Login"),
38 meta: {
39 title: "Login"
40 }
Derick Montaguea2988f42020-01-17 13:46:30 -060041 }
Derick Montaguea2988f42020-01-17 13:46:30 -060042];
43
44const router = new VueRouter({
45 mode: "history",
46 base: process.env.BASE_URL,
47 routes,
48 linkExactActiveClass: "nav__link--current"
49});
50
Derick Montaguee080a1a2019-12-04 16:30:08 -060051router.beforeEach((to, from, next) => {
52 if (to.matched.some(record => record.meta.requiresAuth)) {
53 if (store.getters["authentication/isLoggedIn"]) {
54 next();
55 return;
56 }
57 next("/login");
58 } else {
59 next();
60 }
61});
62
Derick Montaguea2988f42020-01-17 13:46:30 -060063export default router;