first pass of RBAC systems
This commit is contained in:
@@ -37,16 +37,16 @@ const router = createRouter({
|
||||
})
|
||||
|
||||
router.beforeEach(async (to) => {
|
||||
const userStore = useUserStore()
|
||||
const user = useUserStore()
|
||||
|
||||
// Make sure user state is loaded before checking
|
||||
if (!userStore.loaded) {
|
||||
if (!user.loaded) {
|
||||
console.log('loaduser')
|
||||
await userStore.loadUser();
|
||||
await user.loadUser();
|
||||
}
|
||||
|
||||
// Not logged in
|
||||
if (to.meta.requiresAuth && !userStore.isLoggedIn) {
|
||||
if (to.meta.requiresAuth && !user.isLoggedIn) {
|
||||
// Redirect back to original page after login
|
||||
const redirectUrl = encodeURIComponent(window.location.origin + to.fullPath)
|
||||
window.location.href = `https://aj17thdevapi.nexuszone.net/login?redirect=${redirectUrl}`
|
||||
@@ -55,14 +55,16 @@ router.beforeEach(async (to) => {
|
||||
|
||||
|
||||
// Must be a member
|
||||
if (to.meta.memberOnly && userStore.state !== 'member') {
|
||||
if (to.meta.memberOnly && user.state !== 'member') {
|
||||
return '/unauthorized'
|
||||
}
|
||||
|
||||
// // Must have specific role
|
||||
// if (to.meta.roles && !to.meta.roles.includes(userStore.role)) {
|
||||
// return '/unauthorized'
|
||||
// }
|
||||
console.log(!user.hasRole("Dev"));
|
||||
|
||||
// Must have specific role
|
||||
if (to.meta.roles && !user.hasRole('Dev') && !user.hasAnyRole(to.meta.roles)) {
|
||||
return '/unauthorized'
|
||||
}
|
||||
})
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user