基于权限的角度路由

时间:2020-03-13 04:14:18

标签: javascript angular

我正在使用angular 6创建一个项目。在我的项目重定向中,基于权限和角色。我已经使用Activate方法实现了这一点,并且可以在除一种情况下的所有情况下使用。

问题在于登录页面也是基于权限的,如果用户没有权限,登录页面将失败。

     { 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;
            }

   })
}

0 个答案:

没有答案