Java 如何检查某个用户在根节点上是否具有{写,读}权限
我想写一个方法,它必须返回某个用户能够写入/读取的所有根节点 目前我正在做以下工作:Java 如何检查某个用户在根节点上是否具有{写,读}权限,java,magnolia,Java,Magnolia,我想写一个方法,它必须返回某个用户能够写入/读取的所有根节点 目前我正在做以下工作: public List<String> getAllowedRootPaths(String username) throws RepositoryException { SecuritySupport securitySupport = Components.getComponent(SecuritySupport.class); UserManager userManager
public List<String> getAllowedRootPaths(String username) throws RepositoryException {
SecuritySupport securitySupport = Components.getComponent(SecuritySupport.class);
UserManager userManager = securitySupport.getUserManager();
myUser = userManager.getUser(username);
Session session = MgnlContext.getJCRSession("website");
List<String> results = new ArrayList<String>();
if (getRoles().contains("rootPublisher")) {
//check user access and add to array
}
return results;
}
public Collection<String> getRoles() {
return magnoliaUser.getAllRoles();
}
和测试
hm.isGranted(node.getPath(), Permission.READ)
但由于这是不赞成的,我目前正在寻找另一种解决方案。我知道Session有一个AccessRights测试,但我似乎只对usersession有效
也许有人知道如何在不手动获取角色和检查int值的情况下做到这一点
您好,
Hellfiend已被授予访问管理器(node.getPath(),Permission.READ)
好像就是你要找的那个
希望有帮助
欢呼声AccessManager#被授予(node.getPath(),Permission.READ)
好像你要找的那个
希望有帮助
干杯正如Ducaz035建议的那样,您可以执行
MgnlContext.getAccessManager(“网站”)
并在AccessManager上调用isgrated()
。或者,您可以只调用
PermissionUtil.isgrated(节点,权限)
,让该方法定位正确的访问管理器本身。正如Ducaz035建议的那样,您可以执行MgnlContext.getAccessManager(“网站”)
并在AccessManager上调用isgrated()
。或者,您可以只调用
PermissionUtil.isgrated(节点,权限)
,让该方法找到合适的访问管理器本身
hm.isGranted(node.getPath(), Permission.READ)