<?php require_once '../../bootstrap.php'; use Pop\Auth\Acl; use Pop\Auth\Role; use Pop\Auth\Resource; try { // Create some resources $page = new Resource('page'); $template = new Resource('template'); // Create some roles with permissions $reader = Role::factory('reader')->addPermission('read'); $editor = Role::factory('editor')->addPermission('edit'); $publisher = Role::factory('publisher')->addPermission('publish'); $admin = Role::factory('admin')->addPermission('admin'); // Add roles as child roles to demonstrate inheritance $reader->addChild($editor->addChild($publisher->addChild($admin))); $acl = new Acl(); $acl->addRoles(array($reader, $editor, $publisher, $admin)); $acl->addResources(array($page, $template)); $acl->allow('reader', 'page', 'read')->allow('editor', 'page', array('read', 'edit'))->allow('publisher', 'page')->allow('publisher', 'template', 'read')->allow('admin'); $acl->deny('editor', 'page', 'read'); $user = $editor; if ($acl->isAllowed($user, 'page', 'edit')) { echo 'Yes.<br /><br />'; } else { echo 'No.<br /><br />'; } } catch (\Exception $e) { echo $e->getMessage() . PHP_EOL . PHP_EOL; }