Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
В качестве маркера возьмем ACL - систему управления правами доступа.
Могли бы вы смоделировать или на конкретных примерах из опыта или специально сделанных показать подходы реализации ACL на Laravel для крупного Enterprise приложения.
Не просто разграничение прав чтение/запись для определенных сущностей (которая есть "в коробке") с привязкой к группе пользователей, а создание и настройка более гибкой системы - с возможностью указания получателя прав(группа пользователей, индивидуальный пользователь), создания ролей для группировки нескольких прав, возможно работа с динамическими правами (права, которые зависят от ряда внешних факторов, например, от дня недели, времени).
С поддержкой делегирования прав между получателями прав. Также необходима поддержка модульности, чтобы вся система была унифицирована и при разработке нового модуля и включения его в общую систему, все права на сущности и операции этого модуля также подхватывались бы ядром системы.
Таким образом минимальный уровень, который нам сейчас нужен - это организация системы прав на уровне:
- определение прав для работы с сущностью (чтение, изменение и т.д) - они могут быть самыми разными, взависимости от функциональности той или иной сущности(или даже модуля)
- группировка прав в роли (Редактор, Корректор, Читатель и т.д)
- возможность привязки как отдельных прав так и ролей к получателям прав - пользователям, группам пользователей, ботам.
- возможность предоставлять права одних получателям - другим.
Например, пользователь с ролью "Директор", который также принадлежит к группе пользователей "Менеджмент" для которых выставлены свои права и кроме того имеет уникальное право на просмотр отчетов по движению средств, ушел в отпуск, поэтому все его права должны делегироваться пользователю Максиму Николаевичу, без необходимости вручную искать и выставлять все эти права.
Система прав доступа на примере:
https://helpdesk.bitrix24.ru/open/6268091/
Система прав доступа на примере:
https://www.zoho.eu/crm/help/security/
Весьма Благодарен за ответы.Натолкните пожалуйста на мысли может быть подскажите какой шаблон проектирования удачно применить к этой системе, распишите пожалуйста как можно подробнее.Если возможно с вашей стороны.:) Какие темы нужно знать чтобы осуществить подобное?
Изменено imediasun (18.01.2018 22:22:09)
Не в сети
Не пинайте за возможно бесполезный ответ, но за основу для вашей задачи можно взять https://github.com/spatie/laravel-permission, и на этой основе уже проектировать и дописывать ваши особые требования.
Не в сети