vespula / user
一个用于处理 Laminas 权限 ACL 的简单用户类。它扩展了 Laminas\Permissions\Acl\Role\RoleInterface。
0.4.5
2024-07-15 13:55 UTC
Requires
- php: >=7.0
- laminas/laminas-permissions-acl: ^2.7
Requires (Dev)
- phpmd/phpmd: @stable
- phpunit/phpunit: ^6.1
README
此包只是一个扩展了 Zend\Permissions\Acl\Role\RoleInterface
的用户对象。这允许你在查询 ACL 时将用户对象传递给 isAllowed()
方法。你也可以从你的认证库或其他来源填充一些其他数据。
有关使用 Zend ACL 库的详细信息,请参阅 https://docs.zendframework.com/zend-permissions-acl/。
示例
#!php
<?php
$acl = new Zend\Permissions\Acl\Acl;
$acl->addRole('guest');
$acl->addRole('user', 'guest');
$acl->addRole('admin', 'user');
$acl->addResource('posts');
$acl->allow('guest', 'posts', 'view');
$acl->allow('user', 'posts', 'add');
$acl->allow('admin');
// User data, such as the role, username, etc. could come from an Auth object or some other object, such as a Config object. That is up to you.
$user = new \Vespula\User\User('admin');
$user->setUsername('juser');
$user->setFullname('Joe User');
if ($acl->isAllowed($user, 'posts', 'add')) {
// etc.
}
echo "Hello " . $user->getFullname();