zunnu/enforcer

Enforcer 是一个简单的轻量级 CakePHP acl 插件

维护者

详细信息

github.com/zunnu/enforcer

源代码

问题

安装: 6

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 0

开放问题: 0

类型:cakephp-plugin

1.3 2021-10-24 13:59 UTC

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 Enforcer permissions
Enforcer permissions

如果请求是 AJAX,权限错误将如下所示:Enforcer permissions

待办事项

  • 用户特定权限
  • 分组控制器。例如,用户只能访问账单

许可协议

The MIT License 许可下发布。