bk2k/rights-and-roles

增强权限和角色的扩展

安装数: 5,270

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 3

分支: 2

开放问题: 0

类型:typo3-cms-extension

dev-master 2021-06-17 11:53 UTC

This package is auto-updated.

Last update: 2024-09-09 15:00:47 UTC


README

权限和角色

本扩展为TYPO3权限系统提供了多项改进。

  • 使用[G]作为组的前缀
  • 使用[R]作为角色的前缀

1. 权限和角色矩阵

它提供了一个后端模块,列出所有以[G]开头的小组。它显示一个表格形式的矩阵,其中包含分配或未分配的权限信息,以及关于权限分配给小组(或角色)的信息。

2. 超载对页面等的访问权限

默认情况下,您只能将单个用户或单个小组分配给页面的访问权限。这有时并不是正确的方法(参见https://de.wikipedia.org/wiki/Access_Control_List)。

因此,TYPO3中没有实现ACL。解决方案就是这个扩展。

您可以在代码中实现以下两个钩子来实现此目标


$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauthgroup.php']['getPagePermsClause'][] = function ($params) use ($configuration)
{
    // Call the hook from RightsAndRoles Extension
    $hook = new \BK2K\RightsAndRoles\Hook\BackendUserGroupRightsHook($configuration);
    return $hook->getPagePermsClause($params);
};

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauthgroup.php']['calcPerms'][] = function ($params) use ($configuration)
{
    // Call the hook from RightsAndRoles Extension
    $hook = new \BK2K\RightsAndRoles\Hook\BackendUserGroupRightsHook($configuration);
    return $hook->calcPerms($params);
};

现在您能够配置您的权限。

您需要在配置中添加以下结构

  EXT
    page:
      debug: 1          # Debug mode flag
      access:           # the Access configuration
        13:
          0: 1

这意味着,小组“13”(在这个例子中是一个简单的编辑器的基组)可以读取(十进制1,二进制1)所有页面(0)。权限通过标准的二进制加法计算(参见\TYPO3\CMS\Core\Type\Bitmask\Permission)

  NOTHING: 0       (@see \TYPO3\CMS\Core\Type\Bitmask\Permission::NOTHING)
  PAGE_SHOW: 1     (@see \TYPO3\CMS\Core\Type\Bitmask\Permission::PAGE_SHOW)
  PAGE_EDIT: 2     (@see \TYPO3\CMS\Core\Type\Bitmask\Permission::PAGE_EDIT)
  PAGE_DELETE: 4   (@see \TYPO3\CMS\Core\Type\Bitmask\Permission::PAGE_DELETE)
  PAGE_NEW: 8      (@see \TYPO3\CMS\Core\Type\Bitmask\Permission::PAGE_NEW)
  CONTENT_EDIT: 16 (@see \TYPO3\CMS\Core\Type\Bitmask\Permission::CONTENT_EDIT)
  ALL: 31          (@see \TYPO3\CMS\Core\Type\Bitmask\Permission::ALL)

如果用户组可以查看页面并且应该能够编辑内容,正确的二进制值应该是“PAGE_SHOW | CONTENT_EDIT”,这等于十进制17。如果用户组应该对单个页面有特定的访问权限,您可以将此页面ID添加到组块中

  EXT
    page:
      access:
        13:
          25: 19

通过这种配置,用户组“13”可以对ID为“25”的页面进行“PAGE_SHOW && PAGE_EDIT && CONTENT_EDIT”。您还可以将默认页面“0”(所有页面)与特定的页面ID组合,例如

  EXT
    page:
      access:
        13:
          0: 1
          25: 19