legalthings / permission-matcher
PHP的权限匹配器
0.1
2017-01-13 14:18 UTC
Requires
- php: >=5.6.0
- ext-pcre: *
Requires (Dev)
- legalthings/php-code-quality: ^0.1.2
This package is auto-updated.
Last update: 2024-09-11 19:56:27 UTC
README
使用权限匹配器库,您可以检查用户是否有权访问特定资源。指定资源和访问控制级别由库的客户端负责。
要求
- PHP >= 5.6.0
所需的PHP扩展由composer标记
安装
可以使用composer安装此库。
composer require legalthings/permission-matcher
如何工作
该库公开了一个函数,您可以获取匹配认证组的权限列表。认证组可以是任何您想要的东西,在下面的示例中使用了资源URI,但您也可以使用任何格式的字符串。在这个示例中,有一个具有某些权限的用户。然后我们可以请求PermissionMatcher
类提取给定认证组的用户权限。请注意,您可以使用通配符*
。您还可以通过在认证组前放置一个!
来反转权限。
$matcher = new PermissionMatcher(); $permissionsThatSomeUserHas = [ '/organizations/0001' => ['full-access'], '/organizations/0002?list=all' => 'list', '/organizations/0003/*/foo' => ['read', 'write'] ]; echo $matcher->match($permissionsThatSomeUserHas, ['/organizations/0001']); // outputs ['full-access'] echo $matcher->match($permissionsThatSomeUserHas, ['/organizations/0001', '/organizations/0003/random/foo']); // outputs ['full-access', 'read', 'write'] echo $matcher->match($permissionsThatSomeUserHas, ['/organizations/0002']); // outputs [] echo $matcher->match($permissionsThatSomeUserHas, ['/organizations/0002?list=all']); // outputs ['list'] echo $matcher->match($permissionsThatSomeUserHas, ['/organizations/*']); // outputs ['full-access', 'read', 'write']