extends abstract class Phalcon\Acl\Adapter
implements Phalcon\Acl\AdapterInterface, Phalcon\Events\EventsAwareInterface
Manages ACL lists in memory
$acl = new Phalcon\Acl\Adapter\Memory(); $acl->setDefaultAction(Phalcon\Acl::DENY); //Register roles $roles = array( 'users' => new Phalcon\Acl\Role('Users'), 'guests' => new Phalcon\Acl\Role('Guests') ); foreach ($roles as $role) { $acl->addRole($role); } //Private area resources $privateResources = array( 'companies' => array('index', 'search', 'new', 'edit', 'save', 'create', 'delete'), 'products' => array('index', 'search', 'new', 'edit', 'save', 'create', 'delete'), 'invoices' => array('index', 'profile') ); foreach ($privateResources as $resource => $actions) { $acl->addResource(new Phalcon\Acl\Resource($resource), $actions); } //Public area resources $publicResources = array( 'index' => array('index'), 'about' => array('index'), 'session' => array('index', 'register', 'start', 'end'), 'contact' => array('index', 'send') ); foreach ($publicResources as $resource => $actions) { $acl->addResource(new Phalcon\Acl\Resource($resource), $actions); } //Grant access to public areas to both users and guests foreach ($roles as $role){ foreach ($publicResources as $resource => $actions) { $acl->allow($role->getName(), $resource, '*'); } } //Grant access to private area to role Users foreach ($privateResources as $resource => $actions) { foreach ($actions as $action) { $acl->allow('Users', $resource, $action); } }
Phalcon\Acl\Adapter\Memory constructor
Adds a role to the ACL list. Second parameter allows inheriting access data from other existing role Example:
$acl->addRole(new Phalcon\Acl\Role('administrator'), 'consultant'); $acl->addRole('administrator', 'consultant');
Do a role inherit from another existing role
Check whether role exist in the roles list
Check whether resource exist in the resources list
Adds a resource to the ACL list Access names can be a particular action, by example search, update, delete, etc or a list of them Example:
//Add a resource to the the list allowing access to an action $acl->addResource(new Phalcon\Acl\Resource('customers'), 'search'); $acl->addResource('customers', 'search'); //Add a resource with an access list $acl->addResource(new Phalcon\Acl\Resource('customers'), array('create', 'search')); $acl->addResource('customers', array('create', 'search'));
Adds access to resources
Removes an access from a resource
Checks if a role has access to a resource
Allow access to a role on a resource You can use ‘*’ as wildcard Example:
//Allow access to guests to search on customers $acl->allow('guests', 'customers', 'search'); //Allow access to guests to search or create on customers $acl->allow('guests', 'customers', array('search', 'create')); //Allow access to any role to browse on products $acl->allow('*', 'products', 'browse'); //Allow access to any role to browse on any resource $acl->allow('*', '*', 'browse');
Deny access to a role on a resource You can use ‘*’ as wildcard Example:
//Deny access to guests to search on customers $acl->deny('guests', 'customers', 'search'); //Deny access to guests to search or create on customers $acl->deny('guests', 'customers', array('search', 'create')); //Deny access to any role to browse on products $acl->deny('*', 'products', 'browse'); //Deny access to any role to browse on any resource $acl->deny('*', '*', 'browse');
Check whether a role is allowed to access an action from a resource
//Does andres have access to the customers resource to create? $acl->isAllowed('andres', 'Products', 'create'); //Do guests have access to any resource to edit? $acl->isAllowed('guests', '*', 'edit');
Return an array with every role registered in the list
Return an array with every resource registered in the list
Sets the events manager
Returns the internal event manager
Sets the default access level (Phalcon\Acl::ALLOW or Phalcon\Acl::DENY)
Returns the default ACL access level
Returns the role which the list is checking if it’s allowed to certain resource/access
Returns the resource which the list is checking if some role can access it
Returns the access which the list is checking if some role can access it
© 2011–2016 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/2.0.0/api/Phalcon_Acl_Adapter_Memory.html