Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Plugin for managing ACL in CakePHP applications.

Subscribe to updates I use acl

Statistics on acl

Number of watchers on Github 89
Number of open issues 10
Average time to close an issue 3 months
Main language PHP
Average time to merge a PR 1 day
Open pull requests 10+
Closed pull requests 15+
Last commit about 2 years ago
Repo Created almost 6 years ago
Repo Last Updated almost 2 years ago
Size 1.68 MB
Organization / Authorcakephp
Latest Release0.2.6
Page Updated
Do you use acl? Leave a review!
View open issues (10)
View acl activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating acl for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

CakePHP Acl Plugin

Build Status Coverage Status License

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 config\bootstrap.php:

Plugin::load('Acl', ['bootstrap' => true]);

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)

    $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:

  1. Copy phpunit.xml.dist to phpunit.xml
  2. Add the relevant database credentials to your phpunit.xml if you want to run tests against a non-SQLite datasource.
  3. Run phpunit
acl open issues Ask a question     (View All Issues)
  • almost 4 years Usage of plugin
  • over 4 years Extend AclExtras sync in a plugin
  • about 5 years Feature: AclExtras Import AROs from another table
  • about 5 years Feature - Add a Helper to manage the HTML with ACL.
  • almost 3 years Acl Behavior can't delete Aro while using CRUD
acl open pull requests (View All Pulls)
  • Add support for running tests under 3.2
  • Add ability to pass ID to node method
  • Ability to find keys which are NULL
  • Account for string action passed in already prefixed with an '_'
  • Save the alias field
  • Update travis and composer
  • add acl helper
  • Fixing an issue with ARO being updated all of the time for any entity …
  • Add a Helper to manage ACL in views.
  • Adjust AclExtrasShell.php
acl questions on Stackoverflow (View All Questions)
  • Kong - consumers not able to access the Api after Acl plugin configuration
  • How to access node acl across multiple modules?
  • Loopback - Set ACL on Object level
  • ACL setting on XPage not working as expected
  • can i set/refine the ACL of individual xpage(s) via a theme design element?
  • Where is the source for parses ACL?
  • PowerShell - Get-ACL not returning all permissions
  • AWS SDK What context do applications run in for ACL?
  • Network ACL association to subnet in nondefault VPC at the time of acl creation
  • Is it possible to export ZF2 ACL rules?
  • How to associate ACL to a specific subnet in Boto3?
  • Postfix ACL based on sender IP
  • Using @PostFilter without ACL
  • Haproxy SNI vs HTTP Host ACL check performance
  • Error Loading acl file in mosquitto
  • Laravel 5.2 MultiAuth and ACL
  • Why does Set-Acl on the drive root try to set ownership of the "object"?
  • ACL / Role Management: Managing users with multiple roles & Conflicting Permisisons
  • Laravel 5.1 ACL route resource not working
  • Getting "invalid acl key *unresolved" after a while using
  • Custom ACL Authorization and return rows based on the permission
  • Acl vs RBAC in ZF2
  • Comparing two sample variables in HAProxy ACL
  • Why can't I set the ACL for a User to read: false + write:false?
  • - JS - Setting up ACL permissions
  • C# - Windows ACL - Applying Inherited Permissions
  • Which DB for multi user, multi platform, per record/field ACL, variable schema?
  • Using mosquitto native acl file along with an auth plug-in
  • How do I change Parse ACL settings back to Public Read/Write?
  • AWS Network ACL Rules for Docker
acl list of languages used
acl latest release notes
0.2.6 Release 0.2.6

126: Kickstart Instructions

128: Fix typos

125: Fix Invalid query generation for PostgreSQL

0.2.3 0.2.3
  • #105: Add missing direct dependency
  • #107: Fixing an issue with ARO being updated all of the time for any entity
  • #111: Skip abstract (and other uninstantiable) controllers to resolve #110
  • #112: install mysql via service addon for tests
Other projects in PHP