This commit is contained in:
ctengiz
2024-04-10 13:43:00 +03:00
parent f552518822
commit d77f0f8359
41 changed files with 1268 additions and 0 deletions

66
ui/src/router/index.js Normal file
View File

@@ -0,0 +1,66 @@
import {
createMemoryHistory,
createRouter,
createWebHashHistory,
createWebHistory,
} from 'vue-router'
import routes from './routes'
import useLoginStore from 'stores/login'
/*
* If not building with SSR mode, you can
* directly export the Router instantiation;
*
* The function below can be async too; either use
* async/await or return a Promise which resolves
* with the Router instance.
*/
const createHistory = process.env.SERVER
? createMemoryHistory
: (process.env.VUE_ROUTER_MODE === 'history'
? createWebHistory
: createWebHashHistory)
const Router = createRouter({
scrollBehavior: () => ({ left: 0, top: 0 }),
routes,
// Leave this as is and make changes in quasar.conf.js instead!
// quasar.conf.js -> build -> vueRouterMode
// quasar.conf.js -> build -> publicPath
history: createHistory(process.env.VUE_ROUTER_BASE),
})
Router.beforeEach(
(to, from) => {
const loginStore = useLoginStore()
const isLoggedIn = loginStore.IsLoggedIn()
// instead of having to check every route record with
// to.matched.some(record => record.meta.requiresAuth)
if (to.meta.requiresAuth && !isLoggedIn &&
((to.path !== '/') || (to.path !== 'login'))) {
// this route requires auth, check if logged in
// if not, redirect to login page.
return {
path: '/login',
// save the location we were at to come back later
//query: { redirect: to.fullPath },
}
}
if ((isLoggedIn) && ((to.path === '/') || (to.path === 'login'))) {
return {
path: '/panel',
query: '',
}
}
},
)
export default Router