此软件包的最新版本(dev-master)没有提供许可证信息。

CakePHP的AclManager插件

安装: 2

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

公开问题: 0

类型:cakephp-plugin

dev-master 2019-07-16 05:57 UTC

This package is auto-updated.

Last update: 2024-09-16 17:47:24 UTC


README

为CakePHP 3创建Acl的插件

注意

目前这是一个稳定的CakePHP 3.0插件。它类似于CakePHP 2中的Acl,但有一些不同。

您可以使用AclManager为所有用户创建访问级别。这同样适用于访问级别插件和控制器

CakePHP的AclManager插件

安装

您可以使用composer将此插件安装到您的CakePHP应用程序中。

安装composer软件包的推荐方法是

composer require acl-manager/acl

配置

步骤1

在您的config\bootstrap.php文件中

Plugin::load('AclManager', ['bootstrap' => false, 'routes' => true]);

创建表

要创建与ACL相关的表,请运行以下迁移命令

bin/cake migrations migrate -p AclManager

步骤2

您必须创建acos、roles、acos_roles的值。您可以使用插件中的Shell Acl。例如

acos create root plugin
acos create controller Users index

您可以在shell的帮助中查看所有命令。

注意

如果您有前缀,您必须输入prefix_action,例如:admin_index,类似于Cakephp 2

acos create controller Resellers admin_index

步骤3

控制器

您必须在Appcontroller的isAuthorized方法上编写以下代码

public function isAuthorized($user)
{
    if (empty($this->request->params['plugin']))
    {
        $AclManager = $this->loadComponent('AclManager.Check');
        if (empty($this->request->params['plugin']))
        {

            $check_action_curent = $AclManager->Check_request('controller', $this->Auth->
            allowedActions);

            if (!$check_action_curent)
            {
                return false;
            }else {
                return true;
            }

        }
    }
}

插件

您必须在您的插件中Appcontroller的isAuthorized方法上编写以下代码

创建等级

您也可以通过控制器创建等级,例如

    $Grade = $this->loadComponent('AclManager.Grade');
                               
    $Grade->gradecontroller('user','users','admin_edit'); //** $Grade->gradecontroller(name of roll,controller,action);  **// 

注意

您必须在其他控制器的beforefilter方法上更改方法,例如

class UsersController extends AppController
{
    public function beforeFilter(Event $event = null)
    {
        $this->Auth->allow(['edit']);
        parent::beforeFilter($event);//** we must have parent beforfilter **//
    }
}

此代码是为插件Acl不检查编辑操作。这就是为什么您允许在Auth上编辑。此插件需要开发以完善

享受吧!