JHipster * jhiHasAnyAuthority指令检查“无权限”

问题描述 投票:0回答:1

我需要创建一个在用户没有权限(它没有登录)时看到的条件,但我需要先检查该权限,所以当用户登录时,我将看不到内容。

我正在使用JHipster项目中的'jhiHasAnyAuthority'指令。

<div *jhiHasAnyAuthority="''">This should appear.... when the VISITOR is NOT logged </div>

当有权限时(如果你想知道),这是有效的:

<div *jhiHasAnyAuthority="['ROLE_ADMIN', 'ROLE_USER']">This should appear.... when ADMIN or USER is logged </div>
<div *jhiHasAnyAuthority="'ROLE_ADMIN'">This should appear.... when ADMIN is logged </div>

所以我尝试了不同的替代品:

<div *jhiHasAnyAuthority="''">This should appear.... when Blank is NOT logged </div>

但他们不工作!

注意:我不需要将文本放在正常的DIV中,因此如果用户未登录则会显示该文本,因为在记录时它也会出现。

谢谢

angular jhipster
1个回答
1
投票

您正在使用的* jhiHasAnyAuthority指令是JHipseter项目的一部分。

它的源代码可以在https://github.com/jhipster/jhipster-sample-app-ng2/blob/master/src/main/webapp/app/shared/auth/has-any-authority.directive.ts找到

如果你查看源代码,你会发现它不支持否定测试,我假设检查“HasAnyAuthority”是否为空或空的权限字符串与检查是否相同用户没有权限。

因此,似乎您不能使用此指令来测试缺少权限,该指令似乎也不支持像* ngIf那样的if / else语法。

我认为做你想要的唯一方法就是写一个基于* jhiHasAnyAuthority的自定义指令,或修改* jhiHasAnyAuthority来添加所需的行为。

在任何一种情况下,如果你使它工作,那么向JHipster项目提交拉取请求会很好。

© www.soinside.com 2019 - 2024. All rights reserved.