1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
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: "",
meta: {
requiresAuth: true
},
component: AppLayout,
children: [
{
path: "",
component: () => import("@/views/Overview"),
meta: {
title: "Server Overview"
}
},
{
path: "/access-control/local-user-management",
name: "local-users",
component: () => import("@/views/AccessControl/LocalUserManagement"),
meta: {
title: "Manage Local Users"
}
}
]
},
{
path: "/login",
name: "login",
component: () => import("@/views/Login"),
meta: {
title: "Login"
}
}
];
const router = new VueRouter({
mode: "history",
base: process.env.BASE_URL,
routes,
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;
|