53 lines
1.1 KiB
PHP
53 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Acl;
|
|
|
|
use Phalcon\Acl\Role;
|
|
use Phalcon\Acl\Adapter\Memory as AclList;
|
|
|
|
class Acl extends AclList
|
|
{
|
|
const ROLE_USER = 'user';
|
|
const ROLE_GUEST = 'guest';
|
|
|
|
public function __construct()
|
|
{
|
|
$this->_build();
|
|
}
|
|
|
|
protected function _build()
|
|
{
|
|
// Deny access to everything by default.
|
|
$this->setDefaultAction(\Phalcon\Acl::DENY);
|
|
|
|
// Roles
|
|
$user = new Role('user');
|
|
$guest = new Role('guest');
|
|
|
|
$this->addRole($guest);
|
|
$this->addRole($user, $guest);
|
|
|
|
$public = array(
|
|
'index',
|
|
'error',
|
|
'auth',
|
|
'api',
|
|
);
|
|
|
|
// Public Resources
|
|
foreach($public as $resource) {
|
|
$this->addResource($resource, 'Read');
|
|
$this->allow($guest->getName(), $resource, 'Read');
|
|
}
|
|
|
|
$protected = array(
|
|
'callback',
|
|
'user',
|
|
);
|
|
|
|
foreach($protected as $resource) {
|
|
$this->addResource($resource, 'Read');
|
|
$this->allow($user->getName(), $resource, 'Read');
|
|
}
|
|
}
|
|
}
|