我正在使用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;
}
})
}