zunnu / enforcer
Enforcer 是一个简单的轻量级 CakePHP acl 插件
1.3
2021-10-24 13:59 UTC
Requires
- cakephp/cakephp: ^3.5
This package is auto-updated.
Last update: 2024-09-17 02:15:45 UTC
README
Enforcer 是一个简单的轻量级 acl 插件,适用于 CakePHP 3.x
要求
- CakePHP 3.x
- PHP 7.2 >
使用 Composer 安装
将 cd
命令切换到您的应用程序文件夹根目录(其中包含 composer.json
文件)并运行以下命令
composer require zunnu/enforcer
然后使用 CakePHP 的控制台加载插件
./bin/cake plugin load Enforcer
接下来创建表格
./bin/cake migrations migrate -p Enforcer
用法
您需要修改您的 src/Controller/AppController.php
文件,并在 initialize()
函数中加载 Enforcer 组件
$this->loadComponent('Enforcer.Enforcer', [ 'unauthorizedRedirect' => [ 'plugin' => false, 'controller' => 'Users', 'action' => 'login', 'prefix' => false ], 'protectionMode' => 'everything' // everything | filters ]);
unauthorizedRedirect
会告诉 Enforcer 如果用户权限错误时重定向到哪里。而 protectionMode
会告诉 Enforcer 如何处理权限。
如果 protectionMode
中的 filters 已启用,您需要添加
public function beforeFilter(Event $event) { parent::beforeFilter($event); // permission load return $this->Enforcer->hasAccess($this->request, $this->Auth->user()); }
权限
迁移将创建三个不同的组。您可以通过访问 http://app-address/enforcer/admin/groups/index 来添加、修改或删除组
默认的管理员组应该能够访问权限页面。您应该能够通过此 URL 访问页面 http://app-url/enforcer/admin/permissions
待办事项
- 用户特定权限
- 分组控制器。例如,用户只能访问账单
许可协议
在 The MIT License 许可下发布。