首页 > 解决方案 > 在 liferay 7 QUERY 上寻找用户/角色权限,

问题描述

在 Liferay 7.1 中,我正在寻找一个 SQL 脚本来显示每个用户的权限。

这是针对 Liferay 7.1 的,我查找了有关此的信息,我得到的只是针对 liferay 6.2 或更低版本的解决方案。我知道每个角色都有权限,这些权限存储在表 ResourcePermission 中。

我需要这样的东西。 用户角色权限查询 但对于liferay 7.1。

我们需要的是每个角色或用户拥有的权限列表以及用户能够执行的操作。

更新:

我创建了一个脚本,在那里我可以看到布局的权限,

SELECT layout.friendlyurl, role_.name ,resourcepermission.actionids
  FROM layout
  INNER JOIN resourcepermission
  ON layout.plid LIKE resourcepermission.primkey
  LEFT JOIN ResourceAction
ON ResourcePermission.actionIds = ResourceAction.resourceActionId
JOIN role_
ON role_.roleid LIKE resourcepermission.roleid

ORDER BY layout.friendlyurl , resourcepermission.roleid, ResourceAction.actionId

现在我知道如何知道列表中的 id 是什么动作,没有表调用动作,似乎与 ResourceAction 表有关系

更新 2:

我发现这篇文章解释了 Liferay 中的角色权限

https://liferay.dev/blogs/-/blogs/deep-dive-in-roles-and-permissions

标签: liferay-7

解决方案


你对 Liferay 的数据库结构了解得越多,你就越会意识到你不想了解它在后端是如何存储的细节。您只会想在后端更改某些内容,并在此过程中破坏您的升级路径。相信我:去过那里,做过,更重要的是:看到过。

话虽这么说:权限和这样的表并不那么简单:Liferay 按站点授予一些权限,按组织授予一些权限,按全局授予一些权限,以及按团队关联授予一些权限。还有一些其他权限是由对象授予的(例如,您通常可能被禁止写文章,但允许编辑特定的文章)

更进一步:存储权限,以便可以轻松地查询它们以进行权限检查,但不能用于可视化。我怀疑你会在 SQL 中找到一个合理理解的解决方案,而是建议你使用 API,遍历不同的角色并创建各种可视化,例如,为每个角色、每个用户、用户与用户组、站点的关联,组织。

或者,如果您认为您已经为 6.2 提供了这样的解决方案并且需要帮助将其移植到 7.1:发布它。也许有人对结构有足够的了解,他们可以指出查询没有按照您的预期执行的位置。


推荐阅读