【发布时间】:2023-03-04 00:58:02
【问题描述】:
我正在编写一个 Joomla 3.x 组件,我现在搜索从用户(分配给多个用户组)获取“最高级别”用户组的“ID”的可能性。
示例: - 用户是注册和经理以及其他一些组的成员。
第一步我可以从“所有”分配的用户组中获取 ID:
jimport('joomla.access.access');
$groups = JAccess::getGroupsByUser($user->id);
但是我现在如何从具有“最高”级别的用户组中获取“id”?我在核心文件中找不到这种方法。
编辑: 我在我的组件中添加了一个后端部分,可以为每个用户组定义许多特殊设置。但是当用户是多个组的成员时,我不知道如何在前端获得正确的设置。在这种情况下,我不需要 Joomla 资产表中的任何“权限”。只有“最重要”组中的“ID”。检查每个组的“父”ID是否有用?还是使用 getGroupPath($groupId)?
【问题讨论】:
-
这不是 ACL 真正的工作方式……更多的是关于权限,即用户可以做什么……由于这个问题是关于 Joomla 特定的实现细节,我会尝试在 the Joomla Q&A StackExhange site
-
没有最高的东西,除非你要求有某种严格的层次结构。某人可以对类别 x 具有删除权限,但对类别 y 没有编辑权限。甚至删除和编辑也被认为是正交的,这意味着可以给一个组只删除而不是编辑。
-
哼。我在我的组件中添加了一个后端部分,可以为每个用户组定义许多特殊设置。但是当用户是多个组的成员时,我不知道如何在前端获得正确的设置。好的,默认组似乎很容易,但当它存在其他一些(新创建的)组时则不然。
-
在这种情况下,我不需要来自 Joomla 用户或资产表的任何权限。仅来自“最重要”组的 ID。检查每个组的“父”ID是否有用?还是使用 getGroupPath($groupId)?
-
看看核心组件是如何管理这个的,API 非常简单。该 api 只是让你给它一个用户 ID 和一个资产,并说这个用户可以....(编辑、删除、编辑状态等)。