bugfixing

This commit is contained in:
2020-06-14 15:46:24 +02:00
parent 1e1e127f13
commit 19b28453d3
36 changed files with 175 additions and 97 deletions

View File

@@ -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'];