ℹ️ The ACL Plugin is not actively maintained by the CakePHP core team. ℹ️ PR's to fix problems are welcome.
As a modern alternative please check out the Authentication and Authorization plugins.
A plugin for managing ACL in CakePHP applications.
You can install this plugin into your CakePHP application using composer.
The recommended way to install composer packages is:
composer require cakephp/acl
Then in your src/Application.php:
public function bootstrap()
{
parent::bootstrap();
$this->addPlugin('Acl');
}To create the ACL requires tables, run the following Migrations command:
bin/cake migrations migrate -p Acl
Add the Acl behavior to your table so it will automatically create an aco whenever a new record is saved:
public function initialize(array $config)
{
parent::initialize($config);
$this->addBehavior('Acl.Acl', ['controlled']);
}Before you can start using the behavior, you MUST add the parentNode() method to the corresponding Entity file or the AclBehavior will not be able to determine the parent->child relationships. Also make make sure the method returns either null or a parent Model reference.
public function parentNode() {
return null;
}If things went well you should now see an entry appearing in the
acosdatabase table whenever you save a new record.
Assuming you have PHPUnit installed system wide using one of the methods stated here, you can run the tests for the Acl plugin by doing the following:
- Copy
phpunit.xml.disttophpunit.xml - Add the relevant database credentials to your phpunit.xml if you want to run tests against a non-SQLite datasource.
- Run
phpunit