geniv / nette-identity-authorizator
Nette 框架的身份授权类
v1.2.13
2019-04-10 20:43 UTC
Requires
- php: >=7.0
- dibi/dibi: >=3.0
- nette/nette: >=2.4
README
安装
$ composer require geniv/nette-identity-authorizator
或
"geniv/nette-identity-authorizator": "^1.2"
require
"php": ">=7.0", "nette/nette": ">=2.4", "dibi/dibi": ">=3.0"
包含在应用程序中
可用的源驱动器
- Identity\Authorizator\Drivers\ArrayDriver (数组配置)
- Identity\Authorizator\Drivers\NeonDriver (neon 文件)
- Identity\Authorizator\Drivers\DibiDriver (dibi + 缓存)
策略
allow
- 默认拒绝,允许部分deny
- 默认允许,拒绝部分none
- 默认允许,忽略部分
neon 配置
# identity authorizator identityAuthorizator: # debugger: true # autowired: true # policy: allow # driver: Identity\Authorizator\Drivers\ArrayDriver([],[],[],[]) # driver: Identity\Authorizator\Drivers\NeonDriver(%appDir%/acl.neon) driver: Identity\Authorizator\Drivers\DibiDriver(%tablePrefix%)
授权器接口:IIdentityAuthorizator
neon 配置扩展
extensions: identityAuthorizator: Identity\Authorizator\Bridges\Nette\Extension
演示者
use AuthorizatorTrait; // trait for add ACL from Tracy $acl = $this->user->getAuthorizator(); $acl->isAllowed('role', 'resource', 'privilege'); $this->user->isAllowed('resource', 'privilege');
用法
<span n:if="$user->isAllowed('resource', 'privilege')">...</span>
基于安全演示者的通用用法
$acl = $this->user->getAuthorizator(); // manual set allowed with internal resolve policy $acl->setAllowed(IAuthorizator::ALL, 'Homepage'); $acl->setAllowed(IAuthorizator::ALL, 'Login'); if (!$this->user->isAllowed($this->name, $this->action)) { // NOT ALLOWED }