bugfixing
This commit is contained in:
@@ -15,21 +15,27 @@ export class RoleGuard implements CanActivate {
|
||||
next: ActivatedRouteSnapshot,
|
||||
state: RouterStateSnapshot): Observable<boolean | UrlTree> {
|
||||
const requiredRoles = next.data.requiredRoles;
|
||||
if (!requiredRoles) throw new Error('requiredRoles is not defined!');
|
||||
if (!requiredRoles) {
|
||||
throw new Error('requiredRoles is not defined!');
|
||||
}
|
||||
|
||||
return this.userService.user$.pipe(
|
||||
map(user => {
|
||||
const roles = user.role?.split(';') ?? [];
|
||||
if (roles.indexOf('admin') !== -1) return true;
|
||||
if (roles.indexOf('admin') !== -1) {
|
||||
return true;
|
||||
}
|
||||
const allowed = roles.some(s => requiredRoles.indexOf(s) !== -1);
|
||||
|
||||
return allowed || this.router.createUrlTree(this.defaultRoute(roles));
|
||||
})
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private defaultRoute(roles: string[]): string[] {
|
||||
if (!roles || roles.length === 0) return ['brand', 'new-user'];
|
||||
if (!roles || roles.length === 0) {
|
||||
return ['brand', 'new-user'];
|
||||
}
|
||||
switch (roles[0]) {
|
||||
case 'user':
|
||||
return ['songs'];
|
||||
|
||||
Reference in New Issue
Block a user