maymeow/cake-authorization

MayMeow/Authorization 插件用于 CakePHP

安装: 0

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 5

分支: 1

开放性问题: 3

类型:cakephp-plugin

v0.1.1 2022-07-17 09:11 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