import Vue from 'vue' import VueRouter from 'vue-router' import FinanzerView from "@/views/FinanzerView"; import Login from "@/views/Login"; import store from "@/store/index"; import BarView from "@/views/BarView"; Vue.use(VueRouter) const routes = [ { path: "/login", name: "login", component: Login }, { path: "/finanzer", name: "finanzer", component: FinanzerView }, { path: "/bar", name: "bar", component: BarView }, { path: '*', redirect: { name: "login" } }, ] const router = new VueRouter({ mode: 'history', base: process.env.BASE_URL, routes }) router.beforeEach((to, from, next) => { store.dispatch('fetchAccessToken'); let sites = ['/finanzer', '/bar'] if (sites.includes(to.fullPath)) { if (to.fullPath === '/finanzer') { if (!store.state.login.user.group.includes('moneymaster')) { next('/login') } } if (to.fullPath === '/bar') { if (!store.state.login.user.group.includes('bar')) { next('/login') } } if (!store.state.login.user.accessToken) { next('/login') } } if (to.fullPath === '/login') { if (store.state.login.user.accessToken) { if (store.state.login.user.group.includes('moneymaster')) { next('/finanzer') } else if (store.state.login.user.group.includes('bar')) { next('/bar') } } } next(); }); export default router