jhipster 应用程序中的 has-any-authorithy 指令

has-any-authorithy directive in jhipster application

我在我的 jhipster 应用程序中创建了一个新角色 ROLE_SUPERUSER。我希望特定的导航栏菜单仅对管理员和我的新用户可见。 我尝试使用 authority.directive.js 中给出的 has-any-authorithy,但它不起作用。

我在 HTML 中使用它,就像

有任何权限="['ROLE_ADMIN','ROLE_SUPERUSER']"

我错过了什么吗?

代码说:

authorities = attrs.hasAnyAuthority.replace(/\s+/g, '').split(',');

因此指令似乎需要一个字符串而不是数组。

试试这个:

has-any-authority="ROLE_ADMIN, ROLE_SUPERUSER"

有更好的方法来做到这一点。您只能为该指令和 return 一个 "joined" 数组创建服务,如下所示:

您服务中的代码:

this.feature_1 = {
    access: [ROLES.ROLE_ADMIN, ROLES.ROLE_SUPERUSER].join()
};

ROLES 是一个常量,是 app.constants.js 中定义的应用程序角色数组。

在您的模板中:

has-any-roles="{{accessService.feature_1.access}}"

这样做,如果你想改变访问权限,你只需要修改 accessService

在 .html 中你可以使用这个:

has-any-role="ROLE_ADMIN,ROLE_USER"

2016版本应该是:

has-any-authority="ROLE_ADMIN,ROLE_USER"

现在 2017 年是:

 <a *jhiHasAnyAuthority="['ROLE_ADMIN', 'ROLE_USER']">Test</a>

还有一点要补充的是,逗号分隔的权限之间不应该有 space,它在“,”之后的 space 对我不起作用。因为它认为 space 也是权限字符串的一部分:

> has-any-authority="ROLE_ADMIN, ROLE_USER"
> has-any-authority="ROLE_ADMIN,ROLE_USER"

第一个不行,第二个可以。

现在到 2020 年底,我遇到了同样的问题,以限制具有多个权限的字段!

 <div *jhiHasAnyAuthority="['ROLE_ADMIN','ROLE_SUPERUSER']"> And this worked for me! </div>