Как организовать «область видимости» в зависимости от роли пользователя?

Доброго времени суток.

Например, есть несколько ролей: директор, 2 начальника отдела, 4 старших сотрудника(в подчинение по 2 у начальников отделов), 20 сотрудников(в подчинение по 5 у старших сотрудников).
Директор может всё, начальник отдела может добавить/редактировать/просмотреть данные о старшем сотруднике и сотруднике ТОЛЬКО в своем отделе, свои данные только просмотреть, старший сотрудник может просмотреть данные ВСЕХ сотрудников в отделе, НО редактировать и добавлять только подчиненных, удалять не может.

Пока организовал все в лоб, проверяю роли и достаю данные(сотрудников) отдельно для каждой. НО название ролей, количество и подчиненность может меняться.

Подскажите, как организовать "область видимости" в зависимости от роли пользователя и его подчиненных? Есть ли какие то универсальные алгоритмы?

Надеюсь доходчиво объяснил проблему. Заранее, спасибо!

PS. Уже используется модуль Zizaco/entrust, но он только отслеживает разрешения для конкретной роли и действия, но не учитывает "область видимости". Может я как то не так его использую?
  • Вопрос задан
  • 374 просмотра
Пригласить эксперта
Ответы на вопрос 3
usdglander
@usdglander
Yipee-ki-yay
muhammad_97
@muhammad_97
PHP-разработчик
Ответ написан
Комментировать
@kostia_dev
https://github.com/romanbican/roles тут все достаточно просто, роли и разрешения. Этот пакет для 5.1 поэтому можете поискать аналогичные
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы