我在我的jhipster应用程序中创建了一个新角色ROLE_SUPERUSER。我希望只有管理员和我的新用户才能看到特定的导航栏菜单。 我尝试使用在authority.directive.js中给出的has-any-authorithy,但它不起作用。
我在HTML中使用它
具有-任何-authorithy = “[ 'ROLE_ADMIN', 'ROLE_SUPERUSER']”
我错过了什么吗?
答案 0 :(得分:6)
代码说:
authorities = attrs.hasAnyAuthority.replace(/\s+/g, '').split(',');
所以看起来该指令需要一个字符串而不是一个数组。
试试这个:
has-any-authority="ROLE_ADMIN, ROLE_SUPERUSER"
答案 1 :(得分:4)
有一种更好的方法可以做到这一点。您只能为此指令创建服务,并返回“加入”数组,如下所示:
您服务中的代码:
READ_CONTACTS
GET_ACCOUNT
是this.feature_1 = {
access: [ROLES.ROLE_ADMIN, ROLES.ROLE_SUPERUSER].join()
};
中定义的常量和应用角色数组。
在你的模板中:
ROLES
通过这样做,如果您想要更改访问权限,您只需要修改app.constants.js
答案 2 :(得分:2)
在.html中你可以使用它:
has-any-role="ROLE_ADMIN,ROLE_USER"
答案 3 :(得分:2)
现在2017年是:
<a *jhiHasAnyAuthority="['ROLE_ADMIN', 'ROLE_USER']">Test</a>
答案 4 :(得分:1)
2016版本应该是:
has-any-authority="ROLE_ADMIN,ROLE_USER"
答案 5 :(得分:0)
还要补充一点,在逗号分隔的权限之间不应该有空格,对于我来说,在“,”之后的空格不起作用。因为它认为空间也是权限字符串的一部分:
> has-any-authority="ROLE_ADMIN, ROLE_USER"
> has-any-authority="ROLE_ADMIN,ROLE_USER"
第一个将无效,但第二个将无效。
答案 6 :(得分:0)
现在,到2020年底,我仍然面临同样的问题,以限制具有多个权限的字段!
<div *jhiHasAnyAuthority="['ROLE_ADMIN','ROLE_SUPERUSER']"> And this worked for me! </div>