我已经通过Hook插件创建了一个expando列,成功地将自定义字段添加到用户注册页面(create_account.jsp)。但是,在通过管理UI启用Guest权限之前,该字段不可见。
我需要能够通过Hook插件以编程方式执行此操作。详尽的研究让我相信下面的代码可以解决这个问题:
Role guest = RoleLocalServiceUtil.getRole(companyId, RoleConstants.GUEST);
ResourcePermissionLocalServiceUtil.setResourcePermissions(
companyId,
ExpandoColumn.class.getName(),
ResourceConstants.SCOPE_INDIVIDUAL,
String.valueOf(expandoColumn.getColumnId()),
guest.getRoleId(),
new String[] { ActionKeys.VIEW, ActionKeys.UPDATE });
但它没有。
有人有任何想法吗?
答案 0 :(得分:0)
我尝试了与你相同的代码,它对我有用。在我看来,问题出在“expandoColumn.getColumnId()”中。你如何检索对象ExpandoColumn?我尝试使用表id和名称:
ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(21806, "Menu");
为此尝试我直接从DataBase中检索表id,从表“expandocolumn”