Liferay 6 以编程方式为角色设置站点权限Liferay 6.2

Liferay 6 以编程方式为角色设置站点权限Liferay 6.2,liferay-6,roles,startupscript,resource-id,Liferay 6,Roles,Startupscript,Resource Id,我正在为liferay创建一个启动钩子脚本,以便在后台为liferay 6.2添加和预配置角色。 具体来说,我希望添加可以通过控制面板>角色>操作>定义权限访问的权限类型 目前,我可以添加Liferay角色,但到目前为止,未能找到以编程方式向角色添加自定义权限的正确方法。我看到在以前的Liferay版本中有一种方法可以做到这一点,但在这里看不到 到目前为止,我已经调查了RolePermissionUtil、RoleLocalServiceUtil以及其他可用的服务 让我知道这是否可以通过要添

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

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

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

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

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


提前感谢您的帮助

使用
ResourcePermissionLocalServiceUtil.setResourcePermissions
RoleLocalServiceUtil
解决了这个问题

例如


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

使用ResourcePermissionLocalServiceUtil.setResourcePermissions和RoleLocalServiceUtil找到了它,例如:RoleLocalServiceUtil.fetchRole(CompanyThreadLocal.getCompanyId(),“角色名称”);ResourcePermissionLocalServiceUtil.setResourcePermissions(CompanyThreadLocal.getCompanyId(),Role.class.getName(),ResourceConstants.SCOPE_GROUP_模板,String.valueOf(Role.getRoleId()),Role.getRoleId(),新字符串[]{ActionKeys.VIEW,ActionKeys.UPDATE,ActionKeys.DELETE});
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});