Liferay - 为自定义字段/ expand列设置访客权限
问题描述:
我已通过Hook插件创建expando列,成功将自定义字段添加到用户注册页面(create_account.jsp)。但是,只有通过管理界面对其启用访客权限之后,该字段才会显示。Liferay - 为自定义字段/ expand列设置访客权限
我需要能够通过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 });
但它没有。
任何人有任何想法?
答
我试了一下和你一样的代码,它对我很有用。在我看来,问题出现在“expandoColumn.getColumnId()”中。你如何retreive对象ExpandoColumn?我试着与表中的id和名称:
ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(21806, "Menu");
对于这种尝试我直接从数据库retreive表ID,从表“expandocolumn”
下面帮我过线:角色客人= RoleLocalServiceUtil.getRole (PortalUtil.getDefaultCompanyId(),RoleConstants.GUEST); String [] actionsRW = new String [] {ActionKeys.VIEW}; (),private.getRoleId(),actionsRW); –
如果您已经自行解决了您的问题,请将其分享为答案,以便将来可能对其他人有所帮助。 –