Liferay 6.2:更改一个角色的权限以查看角色或为用户分配角色

Liferay 6.2: change one role´s permission to view roles or assign roles to users

我正在编写一个脚本来更改多个用户的权限,并且在一个步骤中,我需要选中位于角色 -> 权限的矩阵中的一些框。换句话说,我需要重新定义哪些用户能够查看或分配一些其他角色,这是一个巨大的变化,所以应该尽可能避免手动方法。

你知道我应该申请什么功能吗?可能与 "ResourcePermissionLocalServiceUtil.setResourcePermissions" 类似,但我不确定这里是否存在正确的 "action" 或者在这种情况下是否确实存在 "resource"。

提前致谢。

我终于解决了这个问题。它确实使用了函数 setResourcePermission。为了帮助周围的人,我将按顺序简要解释这些论点:

  • long companyId:门户实例的id。
  • 字符串名称:资源的名称,在本例中为 "com.liferay.portal.model.Role"。
  • int 范围:必须与权限影响的关节有关。 1 是门户的整个实例,而 4 是...
  • 中引用的唯一角色
  • String primKey:是角色的 ID,可以 "manipulated" 由...
  • long roleId:将对上一个参数中引用的角色具有权限的角色的 ID。
  • String[] actionIds:确定动作的键数组。它们是 KEYS,而不是 ID。例如。查看,ASSIGN_MEMBERS...

因此,例如,这样的调用:

PermissionResourceLocalServiceUtil.setResourcePermissions(10000,"com.liferay.portal.model.Role",4,"20150",22000, {"VIEW", "ASSIGN_MEMBERS"});

将授予视图角色 22000 的权限,并将用户分配给 ID 为 10000 的门户实例中的角色“20150”。

编辑:相同功能的另一个版本是 setOwnerResourcePermissions,它是相同的,但让您可以指定权限的 ownerId。

试试这个:

ResourcePermissionLocalServiceUtil.setResourcePermissions(themeDisplay.getCompanyId(), DLFolder.class.getName(), 
                ResourceConstants.SCOPE_INDIVIDUAL, String.valueOf(folderId), 
                roleIdsRole,Actionlist);
Actionlist -[ACCESS,VIEW,UPDATE,DELETE,ADDSUBFOLDER]
using RoleLocalServiceUtil to get roleId