bk2k / rights-and-roles
增强权限和角色的扩展
dev-master
2021-06-17 11:53 UTC
Requires
- php: >=7.2.0
- typo3/cms-backend: ^10.0 || ^11.0 || 10.*@dev || 11.*@dev
- typo3/cms-core: ^10.0 || ^11.0 || 10.*@dev || 11.*@dev
Requires (Dev)
- bk2k/extension-helper: ^1.0
- friendsofphp/php-cs-fixer: ^2.3.1
- overtrue/phplint: ^1.1
- typo3/testing-framework: ^4.9 || ^5.0
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