Маршрутизация на основе разрешений в angular - PullRequest
0 голосов
/ 13 марта 2020

Я создаю проект, используя angular 6. В моем проекте перенаправление на основе разрешений и ролей. Я реализовал это, используя метод активации, и он работает во всех случаях, кроме одного.

Проблема заключается в том, что целевая страница также основана на разрешении, и она не работает на целевой странице, если у пользователя нет разрешения.

     { path: '', redirectTo: 'user-management', pathMatch: 'full' },
     { path: 'user-management', component: UserManagmentComponent, canActivate:[AuthGuard], data: {permisson:'im_user_view'}},
     { path: 'test-profile', component: TestProfileComponent, canActivate:[AuthGuard], data: {permisson:'ucr_test_profile_view'}},



    canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable < boolean | UrlTree > | Promise < boolean | UrlTree > | boolean | UrlTree {
    let perm = next.data.permisson || null;

    return this.getUserInfo(perm)

    return true;
}

    getUserInfo(perm): Observable < boolean > {
        if (!perm) {
            return of(false);
        }
        return this.commonService.getUserLoggedIn().pipe(map(result => {
            if (this.PermissionService.checkPermission(perm)) {
                return true
            } else {
                return false;
            }

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