Получить роли пользователя в угловом приложении - PullRequest
0 голосов
/ 27 апреля 2018

Я хочу получить пользовательские роли в угловом приложении, но в моем случае его доза не работает, код ниже

export const appRoutes: Routes [{path:'home',component:HomeComponentcanActivate: [AuthGuard] }, { path: 'admin',component: AdminPanelComponent, canActivate: [AuthGuard], data: {roles: ['SuperAdmin']}},

Я хочу получить роль администратора, потому что другой пользователь не сможет получить доступ к компоненту администратора, вот мой код защиты

canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if (sessionStorage.getItem('userToken') != null) {
  debugger
  let roles = next.data['roles'] as Array<string>;
  console.log(next.data['roles']);
  if (roles) {
    var match = this.userService.roleMatch(roles);
    if (match) {
      return true;
    } else {
      this.router.navigate(['/forbiden']);
    }
  }
} else {
  this.router.navigate(['/signin']);
  return false;
}}

роли, с которыми он играет, не определены, не попадают в условие IF

1 Ответ

0 голосов
/ 27 апреля 2018
canActivate(route: ActivatedRouteSnapshot) {
  console.log(route.data);
}

Использование маршрута: ActivatedRouteSnapshot может решить вашу проблему:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...