Spec-Zone.ru › Phalcon 2

Класс 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API