Управление ролями пользователей в Laravel 5.1

В отличии от некоторых других популярных фреймворков (например, Yii), в Laravel из коробки нет инструментов для работы с ролями пользователей. В этой небольшой заметке я расскажу о сторонних решениях по управлению ролями в Laravel 5.1.

Управление ролями пользователей — RBAC для Laravel 5.1

https://github.com/SmartCrowd/laravel-rbac

Этот компонент является адаптацией встроенного в Yii2 модуля управления ролями пользователей. Модуль реализует подход к ролям в стиле RBAC.

RBAC — Управление доступом на основе ролей (Role Based Access Control) — развитие политики избирательного управления доступом, при этом права доступа субъектов системы на объекты группируются с учётом специфики их применения, образуя роли.

В классическом RBAC рассматриваются 3 сущности:
объект, к которому надо назначить или проверить права доступа, например, статья
субъект, который следует наделить правами на объект, например, пользователь
действие — то, что может сделать субъект над объектом, например, редактировать

Для принятия решения по определенному действию может потребоваться использование бизнес-правила. Бизнес правило позволяет выполнить ряд проверок на возможность воздейсвтия субъекта на объект. Например, пользователь может редактировать только свои статьи. В бизнес-правиле следует проверять является ли пользователь автором статьи.

Замечу, что возможность редактировать любые статьи (администратор) и только свои (пользователь) — это разные действия в RBAC.

Элементарные действия могут объединяться в роли, которые уже можно присвоить пользователям и сохранить, например в БД.

Немного подробнее о модуле.
Модуль Laravel RBAC позволяет описывать права и роли пользователей, создавать вложенные роли. Из laravel-специфичных особенностей следует отметить наличие директив для проверки прав доступа прямо из Blade-шаблона, использование контроля доступа в middleware. Также модуль может генерировать права доступа на основе роута и неявно проверять их для текущего пользователя в миддлвари.

Простое управление ролями для Laravel

https://github.com/appzcoder/laravel-roles

Простой менеджер ролей для Laravel. В отличии от предыдущего модуля, данная разработка реализует простейший ACL, позволяя проверять доступ к ресурсу только по роли пользователя.

Управление ролями в Laravel с админкой

https://github.com/romanbican/roles

Этот модуль, в отличие от предыдущих, предлагает работу с ролями и правами через модели. Модуль предоставляет средства (а точнее заготовленные модели) для создания, обновления и присоединения друг к другу прав и ролей.

Запись опубликована в рубрике Laravel с метками , , . Добавьте в закладки постоянную ссылку.

Один комментарий: Управление ролями пользователей в Laravel 5.1

  1. Андрей говорит:

    Единственное что стоит исправить это то что у https://github.com/romanbican/roles, нет админки или я просто не внимательно смотрел?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">