我需要在jhipster中查看管理下拉到其他权限。对于哪个文件我应该如何更改?我想它应该是navbar.html和以下一行。
<li ng-class="{active: `vm.$state.includes('admin')`}" ng-switch-when="true" has-authority="ROLE_ADMIN" uib-dropdown class="dropdown pointer">
如何在那里传递多个权限。其他权限应该是ROLE_MEMBER。在JHI_AUTHORITY表中添加了它。我尝试了上面的代码如下。但没有做出我需要的改变。
vm.$state.includes('admin','member')
has-any-authority的作用如下面的答案所示。然后我需要为成员授予删除具有ROLE_STUDENT配置文件的用户的权限。我该怎么办?
.state('user-management.delete', {
url: '/{login}/delete',
data: {
authorities: ['ROLE_ADMIN','ROLE_MEMBER']
},
成员和管理员都可以删除所有用户。但我需要为会员提供仅删除学生的权利(ROLE_STUDENT)。我该如何实现这种逻辑?可能应该在UserResource.java中实现以下方法。
@DeleteMapping("/users/{login:" + Constants.LOGIN_REGEX + "}")
@Timed
@Secured({AuthoritiesConstants.ADMIN, AuthoritiesConstants.MEMBER})
public ResponseEntity<Void> deleteUser(@PathVariable String login) {
log.debug("REST request to delete User: {}", login);
boolean hasAuthorityAdmin = false;
boolean hasAuthorityMember = false;
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
hasAuthorityAdmin = authorities.contains(new SimpleGrantedAuthority(AuthoritiesConstants.ADMIN));
hasAuthorityMember = authorities.contains(new SimpleGrantedAuthority(AuthoritiesConstants.MEMBER));
if (hasAuthorityAdmin) {
// delete user
userService.deleteUser(login);
} else {
if (hasAuthorityMember) {
// delete user if it is a student
if (userService.getAuthorities().size() == 4 && userService.getAuthorities().contains(AuthoritiesConstants.STUDENT)) {
userService.deleteUser(login);
}
}
}
return ResponseEntity.ok().headers(HeaderUtil.createAlert("userManagement.deleted", login)).build();
}
我猜错了这个if (userService.getAuthorities().size() == 4 && userService.getAuthorities().contains(AuthoritiesConstants.STUDENT))
条件。如果我可以获得要删除的用户角色,那么我们可以检查它是否是ROLE_STUDENT。我认为deleteUser(@PathVariable String login)
如果我们可以传递另一个参数来获取要删除的用户配置文件,我们可以解决问题。或者,如果我们可以在userService中找到另一个方法来获取要删除的权限?
答案 0 :(得分:2)
我认为您可以使用 has-any-authority :
来实现<li ng-class="{active: `vm.$state.includes('admin')`}" ng-switch-when="true" has-any-authority="ROLE_MEMBER, ROLE_ADMIN" uib-dropdown class="dropdown pointer">
答案 1 :(得分:2)
在更新问题之后,如果当前用户具有角色成员,您可以执行以下操作,以便能够删除具有ROLE STUDENT的用户:
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a;
for(int i=31;i>=0;i--)
{
b=(a>>i)&1;
cout<<b;
}
}