blob: 560da89ac3c9267654914804d8f58a1d7affe35c [file] [log] [blame]
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;