Updated hasRoleGuard

This commit is contained in:
Dan Percic 2023-11-07 13:47:13 +02:00
parent a6383c1dbc
commit b27c4e60d8

View File

@ -1,9 +1,10 @@
import { CanActivateFn, Router } from '@angular/router';
import { Router } from '@angular/router';
import { inject } from '@angular/core';
import { IqserUserService } from '../services/iqser-user.service';
import { TenantsService } from '../../tenants';
import { AsyncGuard } from '../../services';
export function hasAnyRoleGuard(): CanActivateFn {
export function doesNotHaveAnyRoleGuard(): AsyncGuard {
return async () => {
const router = inject(Router);
const activeTenantId = inject(TenantsService).activeTenantId;
@ -15,3 +16,16 @@ export function hasAnyRoleGuard(): CanActivateFn {
return true;
};
}
export function hasAnyRoleGuard(): AsyncGuard {
return async () => {
const router = inject(Router);
const activeTenantId = inject(TenantsService).activeTenantId;
const user = await inject(IqserUserService).loadCurrentUser();
if (!user?.hasAnyRole) {
await router.navigate([`/${activeTenantId}/auth-error`]);
return false;
}
return true;
};
}