【问题标题】:joomla 3: get the user group id with the 'highest' leveljoomla 3:获取“最高”级别的用户组ID
【发布时间】: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 和一个资产,并说这个用户可以....(编辑、删除、编辑状态等)。

标签: php sql joomla


【解决方案1】:

由于 $groups 是一个数组: $highestLevel = max($groups); 应该做的伎俩!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2013-08-02
    • 2011-03-07
    • 2015-09-17
    • 2021-12-27
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多