libriciel / cakephp5-acl
CakePHP 框架的 Acl 插件
dev-master
2024-09-27 15:07 UTC
Requires
- php: >=8.1
- cakephp/cakephp: ^5.0.1
- cakephp/plugin-installer: ^2.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ~4.2.0
- phpunit/phpunit: ^10.1.0
This package is auto-updated.
Last update: 2024-09-27 15:07:58 UTC
README
ℹ️ CakePHP 核心团队并未积极维护 ACL 插件。 ℹ️ 欢迎提交修复问题的 PR。
作为现代替代方案,请查看 Authentication 和 Authorization 插件。
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 插件的测试
- 将
phpunit.xml.dist
复制到phpunit.xml
- 如果您想针对非 SQLite 数据源运行测试,请将相关数据库凭据添加到您的 phpunit.xml。
- 运行
phpunit