<?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;
}