maymeow / cake-authorization
MayMeow/Authorization 插件用于 CakePHP
v0.1.1
2022-07-17 09:11 UTC
Requires
- php: >=7.2
- cakephp/cakephp: ~4.2.0
Requires (Dev)
- phpunit/phpunit: ^8.5 || ^9.3
This package is auto-updated.
Last update: 2024-09-17 17:15:58 UTC
README
这是一个非常简单的 CakePHP 授权插件,它使用属性来定义角色。
要求
- CakePHP 4.x
- PHP 8.x
- 配置认证(检查 CakePHP 文档)
安装
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
安装 composer 包的推荐方法是
composer require maymeow/cake-authorization
将插件加载到 CakePHP 的 Application.php
$this->addPlugin('MayMeow/Authorization');
在控制器中加载它
public function initialize(): void { parent::initialize(); // TODO: Change the autogenerated stub $this->loadComponent('MayMeow/Authorization.Authorization'); }
并运行它
public function beforeFilter(EventInterface $event) { parent::beforeFilter($event); // TODO: Change the autogenerated stub $this->Authorization->authorize($this); }
简单授权
这只是检查是否存在身份属性。此函数可能会被删除,因为简单授权由 Authentication 插件提供。
它可以用于在需要用户登录的函数上添加注释。
#[Authorize] public function index() { $users = $this->paginate($this->Users); $this->set(compact('users')); }
基于角色的授权
它检查用户是否提供了角色。存储用户的实体必须实现 \MayMeow\Authorization\Controller\Component\RoleAuthorizationInterface
接口,它必须返回
限制:用户只能分配一个角色
#[Authorize('Administrators')] public function view($id = null) { $user = $this->Users->get($id, [ 'contain' => [], ]); $this->set(compact('user')); }
您也可以通过输入名称并以逗号 ,
分隔来提供更多角色。不要使用任何空格。
#[Authorize('Administrators,Users')] public function view($id = null) { $user = $this->Users->get($id, [ 'contain' => [], ]); $this->set(compact('user')); }
如果您使用基于角色的授权,则必须提供您希望有权访问操作的所有角色的名称。
贡献
有关贡献指南,请查看 https://github.com/MayMeow/contribution