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 }); 

但它没有。

任何人有任何想法?

+0

下面帮我过线:角色客人= RoleLocalServiceUtil.getRole (PortalUtil.getDefaultCompanyId(),RoleConstants.GUEST); String [] actionsRW = new String [] {ActionKeys.VIEW}; (),private.getRoleId(),actionsRW); –

+0

如果您已经自行解决了您的问题,请将其分享为答案,以便将来可能对其他人有所帮助。 –

我试了一下和你一样的代码,它对我很有用。在我看来,问题出现在“expandoColumn.getColumnId()”中。你如何retreive对象ExpandoColumn?我试着与表中的id和名称:

ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(21806, "Menu"); 

对于这种尝试我直接从数据库retreive表ID,从表“expandocolumn”