cakephp / acl
Acl Plugin for CakePHP framework
Installs: 484 454
Dependents: 19
Suggesters: 1
Security: 0
Stars: 110
Watchers: 39
Forks: 91
Open Issues: 13
Type:cakephp-plugin
Requires
- php: >=7.2
- cakephp/cakephp: ^4.0
- cakephp/plugin-installer: ^1.2
Requires (Dev)
- cakephp/cakephp-codesniffer: ~4.2.0
- phpunit/phpunit: ^8.0
README
ℹ️ 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.
Installing via composer
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'); }
Creating tables
To create the ACL requires tables, run the following Migrations
command:
bin/cake migrations migrate -p Acl
Attaching the behavior
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']); }
Updating the entity
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
acos
database table whenever you save a new record.
Running tests
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.dist
tophpunit.xml
- Add the relevant database credentials to your phpunit.xml if you want to run tests against a non-SQLite datasource.
- Run
phpunit