我们有一个具有超级管理员和组织管理员级别的控制台。当您以超级管理员身份登录时,我希望路由/
成为超级管理员模块。
[super admin]
+ [Organisations]
+ [Users]
+ etc..
进入“组织”时将获得/organisations/list
和/organisations/Apple/posts
之类的路径。
当您以组织管理员身份登录时,根目录/
应该加载组织模块。
[org admin]
+ [Posts]
+ [Users]
+ [Events]
+ etc.
我遇到的问题是,我想使用URLMatcher允许根据授权在同一路径上加载2个模块。为此,我必须能够将Auth服务注入may URLMatcher函数。
似乎在评估路由时,首先处理了UrlMatcher。使用解析器无济于事,因为那以后会发生。我唯一能做的是访问LocalStorage并对JWT进行解码以获取授权信息,但是对我来说这似乎很麻烦。
目前,我唯一的解决方案是为超级管理员提供其自己的路径/admin/
,为组织管理员提供根目录/
。并非世界末日,但能够使用UrlMatcher进行更多控制将是个不错的选择。
任何建议如何解决这个问题?
我的直接想法是创建一个包装路径;
{
path: '',
component: WrapperComponent
}
[WrapperComponent
可以显示基于身份验证的相关视图。
WrapperComponent
<super-admin *ngIf="role == 'superAdmin'; else orgAdmin"></super-admin>
<ng-template #orgAdmin>
<org-admin></org-admin>
</ng-template>