Files
crater/resources/scripts/router/index.js
Mohit Panjwani bdea879273 v6 update
2022-01-10 16:06:17 +05:30

40 lines
1.0 KiB
JavaScript

import { createRouter, createWebHistory } from 'vue-router'
import { useUserStore } from '@/scripts/admin/stores/user'
import { useGlobalStore } from '@/scripts/admin/stores/global'
//admin routes
import AdminRoutes from '@/scripts/admin/admin-router'
// Customers routes
import CustomerRoutes from '@/scripts/customer/customer-router'
//Payment Routes
let routes = []
routes = routes.concat(AdminRoutes, CustomerRoutes)
const router = createRouter({
history: createWebHistory(),
linkActiveClass: 'active',
routes,
})
router.beforeEach((to, from, next) => {
const userStore = useUserStore()
const globalStore = useGlobalStore()
let ability = to.meta.ability
const { isAppLoaded } = globalStore
if (ability && isAppLoaded && to.meta.requiresAuth) {
if (userStore.hasAbilities(ability)) {
next()
} else next({ name: 'account.settings' })
} else if (to.meta.isOwner && isAppLoaded) {
if (userStore.currentUser.is_owner) {
next()
} else next({ name: 'dashboard' })
} else {
next()
}
})
export default router