lm-commons / rbac
PHP 8支持的zfr/rbac v1.2.0的克隆
v1.2.1
2024-08-09 13:21 UTC
Requires
- php: ^8.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.2
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^10.0 || ^11.0
- squizlabs/php_codesniffer: ^3.5.5
Replaces
- zfr/rbac: 1.2.0
README
重要!
此软件包的唯一目的是提供一个支持PHP 8并修复弃用通知的zfr/rbac 1.2版本。
Rbac(不要与ZfcRbac/LmcRbac混淆)是RBAC(基于角色的访问控制)概念的纯PHP实现。实际上,它是ZF2 Zend\Permissions\Rbac组件的Zend Framework 3原型。
它旨在修复一些设计错误,使其更加实用和高效。
它在以下方面有所不同
- 引入了
PermissionInterface
。 RoleInterface
不再有setParent
和getParent
方法,并且不能再有子项(这用于实现更简单的“平面RBAC”)。- 引入了新的
HierarchicalRoleInterface
,允许角色有子项。 - 角色上的
hasPermission
方法不再递归迭代子角色,而只检查其自身的权限。要正确检查角色是否被授权,您应使用Rbac
类的isGranted
方法。 Rbac
类不再是容器。相反,它只有一个isGranted
方法。由于角色重复,容器很复杂,难以正确处理,如果不正确使用,可能会导致安全问题。
此库用于LM-Commons/LmcRbacMvc v3。