houseoftech/cakephp-acl-manager

CakePHP 2.x 的 AclManager

安装: 110

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 3

分支: 33

类型:cakephp-plugin

1.3.2 2016-03-19 06:50 UTC

This package is auto-updated.

Last update: 2024-09-21 02:17:52 UTC


README

此插件允许您通过 Acl 模块轻松管理 CakePHP 2.x 中的权限。

功能

  • 管理每个节点的权限
  • 使用缺失的 AROs(用户、角色等)更新数据库
  • 使用缺失的 ACOs(控制器操作)更新数据库
  • 撤销所有权限

要求

  • CakePHP 2.x

如何安装

1. 设置 Acl 环境

  • 通过 Cake Console 安装 SQL 表
  • 在您的请求者模型上实现 parentNode() 方法

见:CakePHP: Simple ACL Controlled Application

2. 在 AppController 中配置 Auth

它应该看起来像这样

var $components = array('Auth', 'Acl', 'Session');

function beforeFilter() {
    //Configure AuthComponent
    $this->Auth->authorize = array(
        'Controller',
        'Actions' => array('actionPath' => 'controllers')
    );
    $this->Auth->authenticate = array(
        'Form' => array(
            'fields' => array(
                'username' => 'login',
                'password' => 'password'
            )
        )
    );
    $this->Auth->loginAction = array(
        'controller' => 'users',
        'action' => 'login',
        'admin' => false,
        'plugin' => false
    );
    $this->Auth->logoutRedirect = array(
        'controller' => 'users',
        'action' => 'login',
        'admin' => false,
        'plugin' => false
    );
    $this->Auth->loginRedirect = array(
        'controller' => 'products',
        'action' => 'index',
        'admin' => false,
        'plugin' => false
    );
}

function isAuthorized($user) {
    // return false;
    return $this->Auth->loggedIn();
}

3. 下载 AclManager

手动

下载稳定分支(https://github.com/houseoftech/cakephp-acl-manager/archive/stable.zip)并将其内容粘贴到您的 app/Plugin/ 目录。

使用 Composer

  1. 安装 composer 到您的项目的 app/ 文件夹。
  2. "houseoftech/cakephp-acl-manager": "stable" 添加到您的 composer.json 文件中的 require 键。(更多关于此
  3. 运行 php composer.phar install 安装插件。

Composer 文档

4. 配置插件

AclManager/Config/bootstrap.php

AclManager.aros:在此处写入您的请求者模型别名(顺序很重要)

5. 启用插件

app/Config/bootstrap.php

CakePlugin::load('AclManager', array('bootstrap' => true));

6. 使用现有用户登录

该插件与 $this->Auth->allow() 冲突,请勿使用它。只需确保您已登录。

7. 在 /acl_manager/acl 访问插件

  • 更新您的 AROs 和 ACOs
  • 设置您的权限(不要忘记启用您自己的公开操作!)

8. 禁用授权控制器

或在 AppController::isAuthorized() 中取消注释 return false

9. 完成了!

享受!

许可证

MIT 许可证 下许可