naprstek/acl-entity
Composer 安装命令:
composer require naprstek/acl-entity
包简介
Support for entities annotated for ACL.
README 文档
README
Support for entities annotated for ACL.
To install this library, run the command below and you will get the latest version:
composer require naprstek/acl-entity
Usage
Create data entity this way:
<?php namespace AclEntity\Tests\Entity; use AclEntity\IEntity; use AclEntity\Entity\Entity; use AclEntity\Annotation\Acl; class Element extends Entity implements IEntity { /** * @var integer * @Acl({"view":{"internal", "external"}, "edit":{}}) */ private $id; /** * @var string * @Acl({"view":{"internal"}, "edit":{"external"}}) */ private $name; /** * @var string * @Acl({"view":{"external"}, "edit":{"internal"}}) */ private $value; }
For property id: role "internal" and "external" has right "view" and no role has right "edit" (you can ommit this definition, but this way is more describing).
Then in your ACL (based on Zend\Permissions\Acl\Acl for example) you define:
//Roles $this->addRole(new Role('internal')); $this->addRole(new Role('external')); //Resources: it is our data propertis $my = new Element(); foreach($my->getAllProperties() as $resource) { $this->addResource(new Resource($resource)); } //define privilleges $this->allow('internal', $my->getAclProperties('internal', 'view'), 'view'); $this->allow('internal', $my->getAclProperties('internal', 'edit'), 'edit'); $this->allow('external', $my->getAclProperties('external', 'view'), 'view'); $this->allow('external', $my->getAclProperties('external', 'edit'), 'edit');
统计信息
- 总下载量: 15
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2018-03-29