0

我正在为 Liferay 创建一个启动挂钩脚本,以在幕后为 Liferay 6.2 添加和预配置角色。具体来说,我希望添加可以通过“控制面板”>“角色”>“操作”>“定义权限”访问的权限类型。

目前,我能够添加 Liferay 角色,但迄今为止未能成功找到以编程方式向角色添加自定义权限的正确方法。我看到在以前的 Liferay 版本中有一种方法可以做到这一点,但在这里看不到。

https://www.liferay.com/community/forums/-/message_boards/message/2965424 https://www.liferay.com/web/guest/community/forums/-/message_boards/message/124558

到目前为止,我已经调查了 RolePermissionUtil、RoleLocalServiceUtil 以及其他可用服务。

让我知道这是否可以通过要添加到启动挂钩的服务获得,或者这是否只能在 UI 中完成。

自这些帖子以来,API 似乎发生了变化。

预先感谢您的帮助

4

1 回答 1

0

想通了使用ResourcePermissionLocalServiceUtil.setResourcePermissionsand RoleLocalServiceUtil

例如。

RoleLocalServiceUtil.fetchRole(CompanyThreadLocal.getCompanyId(), "Role Name");
ResourcePermissionLocalServiceUtil.setResourcePermissions(CompanyThreadLocal.getCompanyId(), Role.class.getName(), ResourceConstants.SCOPE_GROUP_TEMPLATE, String.valueOf(role.getRoleId()), role.getRoleId(), new String[] {ActionKeys.VIEW, ActionKeys.UPDATE, ActionKeys.DELETE});

我曾经CompanyThreadLocal获取公司 ID,因为我在挂钩而不是 portlet 中使用它,通常可以通过主题显示访问它。这里我只是添加对角色的访问,但可以添加其他类名称空间。(例如。"com.liferay.portlet.dynamicdatalists.model.DDLRecordSet"

于 2014-04-18T14:23:42.750 回答