cakephp/acl

CakePHP 框架的 Acl 插件

安装次数: 370,055

依赖者: 19

建议者: 1

安全: 0

星标: 111

关注者: 39

分支: 91

开放问题: 13

类型:cakephp-plugin

0.10.1 2024-04-01 16:58 UTC

This package is auto-updated.

Last update: 2024-08-31 00:31:11 UTC


README

Build Status Coverage Status License

ℹ️ CakePHP 核心团队没有积极维护 ACL 插件。 ℹ️ 欢迎提交修复问题的 PR。

作为现代替代方案,请查看 AuthenticationAuthorization 插件。

CakePHP 应用程序中管理 ACL 的插件。

通过 composer 安装

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

安装 composer 包的推荐方法是

composer require cakephp/acl

然后在您的 src/Application.php

public function bootstrap()
{
    parent::bootstrap();
    $this->addPlugin('Acl');
}

创建表

要创建 ACL,需要表,运行以下 Migrations 命令

bin/cake migrations migrate -p Acl

附加行为

Acl 行为添加到您的表中,以便在保存新记录时自动创建一个 aco

public function initialize(array $config)
{
    parent::initialize($config);

    $this->addBehavior('Acl.Acl', ['controlled']);
}

更新实体

在您可以使用行为之前,您必须将 parentNode() 方法添加到相应的 Entity 文件,否则 AclBehavior 将无法确定父-子关系。同时,确保该方法返回 null 或父模型引用。

public function parentNode() {
    return null;
}

如果一切顺利,您现在应该在保存新记录时看到 acos 数据库表中出现条目。

运行测试

假设您已通过以下方法之一在系统范围内安装了 PHPUnit,您可以通过以下操作运行 Acl 插件的测试

  1. phpunit.xml.dist 复制到 phpunit.xml
  2. 如果您想针对非 SQLite 数据源运行测试,请在 phpunit.xml 中添加相关的数据库凭据。
  3. 运行 phpunit