Содержание


RBAC


RBAC, Permissions, ЗФ2, Zend Framework 2, ZF2, ру, ru




Компонент Zend\Permissions\Rbac  обеспечивает легкий способ предоставления контроля доступа, основанный на ролях. В основе лежит реализация PHP 5.3 SPL RecursiveIterator и RecursiveIteratorIterator. RBAC отличается от ACL тем, что основной упор сделан на ролях и их разрешениях, а не на объектах (ресурсах).

 

Основные понятия:

- у личности имеется одна или более ролей

- роль запрашивает доступ на разрешение

- разрешения передаются в роль

 

Модель RBAC:

 

- отношение многие ко многим между личностями и ролями

- отношение многие ко многим между ролями и разрешениями

- у каждой роли может быть родительская роль

 


Роли

 

Самый простой способ создать роль – это расширить класс Zend\Permission\Rbac\AbstractRole или просто использовать класс по умолчанию в Zend\Permission\Rbac\Role. Вы можете создать экземпляр роли и добавить его в контейнер RBAC, или же добавить роль напрямую, используя метод контейнера RBAC «addRole()».

 


Разрешения

 

Каждая из ролей может иметь ноль или большее количество разрешений. Может быть установлена непосредственно на роль или же при первом извлечении роли из контейнера RBAC. Любая дочерняя роль наследует все разрешения своего родителя.

 

Динамические утверждения



 

В некоторых ситуациях простая проверка ключа доступа может быть недостаточной. Например, предположим есть два пользователя, Foo и Bar, и оба имеют разрешение на редактирование статей. Что остановит Foo от редактирования статей Bar ? Ответ -  это динамические утверждения. Они позволяют указывать дополнительные  учетные данные, на которых должен осуществляться доступ.

 


Автор статьи: DuB