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

时间:2016-03-15 19:17:31

标签: angularjs angularjs-directive jhipster

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

我在HTML中使用它

具有-任何-authorithy = “[ 'ROLE_ADMIN', 'ROLE_SUPERUSER']”

我错过了什么吗?

7 个答案:

答案 0 :(得分:6)

代码说:

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

所以看起来该指令需要一个字符串而不是一个数组。

试试这个:

has-any-authority="ROLE_ADMIN, ROLE_SUPERUSER"

答案 1 :(得分:4)

有一种更好的方法可以做到这一点。您只能为此指令创建服务,并返回“加入”数组,如下所示:

您服务中的代码:

READ_CONTACTS

GET_ACCOUNTthis.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>