Роли и разрешения Laravel с параметрами - PullRequest
0 голосов
/ 23 июня 2019

Я планирую расширить систему, которая поможет мне отмечать студентов на лабораторных занятиях по различным курсам, на которые они записаны. У меня работает базовая версия системы, но для нее требуется более совершенная система разрешений.

У меня есть пользователи и курсы. То, что я хочу, - это возможность иметь такие роли, как «Координатор» и «Грейдер», но на основе курса.

Таким образом, конкретный пользователь может быть «Грейдер на курсе1» и «Координатор на курсе2»

Роль «Грейдер на курсе X» будет иметь базовые разрешения «Может просматривать курс X», «Может оценить курс X» и т. Д. «Координатор на курсе X» может иметь другие разрешения, такие как «Может записывать студентов на курс». X».

Таким образом, мои роли и полномочия в некотором роде параметризованы курсами.

С пакетом spatie / laravel-Разрешения я понимаю, что могу создавать такие роли, как Грейдер и Координатор (вместе с базовыми разрешениями). Но это не позволило бы мне сделать конкретного пользователя грейдером на одном курсе, но не на всех других.

Комбинируя этот пакет (spatie / laravel-Разрешение) с политиками Laravels, я думаю, я подхожу ближе. Политики параметризованы моделями (т. Е. Модель курса в моем случае). Но я не понимаю, как политики будут связываться с ролями и разрешениями, если они не слишком параметризованы.

Есть идеи о том, как решить эту проблему?

Один из способов, о котором я думал, - это иметь такие роли, как "координатор_курс1", "координатор_курс2", "координатор_курс3" ... и разрешения, такие как "can_view_course1", "can_view_course2", "can_view_course3", ... но это чувствуется как плохой выбор.

Любой совет будет приветствоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...