Класс Phalcon\Acl\Adapter\Memory
extends абстрактный класс Phalcon\Acl\Adapter
implements Phalcon\Acl\AdapterInterface, Phalcon\Events\EventsAwareInterface
Управляет списками ACL в памяти
$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);
}
}
Методы
public __construct ()
Конструктор Phalcon\Acl\Adapter\Memory
public boolean addRole (Phalcon\Acl\RoleInterface $role, [array|string $accessInherits])
Добавляет роль в список ACL. Второй параметр позволяет унаследовать данные доступа от другой существующей роли. Пример:
$acl->addRole(new Phalcon\Acl\Role('administrator'), 'consultant');
$acl->addRole('administrator', 'consultant');
public addInherit (string $roleName, string $roleToInherit)
Производит наследование роли от другой существующей роли
public boolean isRole (string $roleName)
Проверяет, существует ли роль в списке ролей
public boolean isResource (string $resourceName)
Проверяет, существует ли ресурс в списке ресурсов
public boolean addResource (Phalcon\Acl\Resource $resource, [array $accessList])
Добавляет ресурс в список ACL. Имена доступа могут быть конкретным действием, например, поиск, обновление, удаление и т. д., или списком из них. Пример:
//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'));
public addResourceAccess (string $resourceName, mixed $accessList)
Добавляет доступ к ресурсам
public dropResourceAccess (string $resourceName, mixed $accessList)
Удаляет доступ к ресурсу
protected _allowOrDeny ()
Проверяет, имеет ли роль доступ к ресурсу
public allow (string $roleName, string $resourceName, mixed $access)
Разрешает доступ роли к ресурсу. Можно использовать «*» в качестве подстановочного знака. Пример:
//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');
public boolean deny (string $roleName, string $resourceName, mixed $access)
Запрещает доступ роли к ресурсу. Можно использовать «*» в качестве подстановочного знака. Пример:
//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');
public boolean isAllowed (string $role, string $resource, string $access)
Проверяет, разрешен ли доступ роли к действию из ресурса
//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');
public Phalcon\Acl\Role [] getRoles ()
Возвращает массив со всеми зарегистрированными ролями
public Phalcon\Acl\Resource [] getResources ()
Возвращает массив со всеми зарегистрированными ресурсами
public setEventsManager (Phalcon\Events\ManagerInterface $eventsManager) унаследованно от Phalcon\Acl\Adapter
Устанавливает менеджер событий
public Phalcon\Events\ManagerInterface getEventsManager () унаследованно от Phalcon\Acl\Adapter
Возвращает внутренний менеджер событий
public setDefaultAction (int $defaultAccess) унаследованно от Phalcon\Acl\Adapter
Устанавливает уровень доступа по умолчанию (Phalcon\Acl::ALLOW или Phalcon\Acl::DENY)
public int getDefaultAction () унаследованно от Phalcon\Acl\Adapter
Возвращает уровень доступа ACL по умолчанию
public string getActiveRole () унаследованно от Phalcon\Acl\Adapter
Возвращает роль, для которой список проверяет разрешение на определенный ресурс/доступ
public string getActiveResource () унаследованно от Phalcon\Acl\Adapter
Возвращает ресурс, для которого список проверяет, может ли какая-либо роль получить к нему доступ
public string getActiveAccess () унаследованно от Phalcon\Acl\Adapter
Возвращает доступ, для которого список проверяет, может ли какая-либо роль получить к нему доступ
© 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