Для одного не большого проекта, написанного на некой самописной CMS потребовался контроль доступа.
Подразумевалось наличие проверки по ролям, маркерам разрешений и владельцу.
Подготовка
Для демонстрации примеров нам необходимы заранее заготовленые объекты.
Класс записи
Класс пользователя
Примеры использования
Теперь можно посмотреть на ряд примеров.
Проверка по роли
Одна из базовых и самых простых проверок. Объекту пользователя назначается конкретная роль. По этой роли дальше осуществляется проверка. Стоит так же учесть, что в данной реализации, чем выше int() у роли, тем выше у нее привелегия. Сделано это для иерархии ролей (весьма простой в данном случае), дабы ROOT_USER мог пользоваться всеми благами цивилизации.
Проверка на родителя
Еще одной немаловажной проверкой является проверка на соответствие родителю. По сути, кто что-то создал, тот и редактировать может.
Проверка на соответствие группы
Данная проверка более похожа на проверку конкретного правила. Суть приблизительно такая - для удобства раздачи прав
создается несколько групп с определенным набором привелегий. Конкретному пользователю присваиваются несколько групп.
Далее, получаем возможность осуществить проверку на конкретное действие.
Заключение
Данная библиотека доступна для установки через composer:
Так же вы можете просмотреть сам код по адресу: Simplae ACL