В течение yii2 мне нужно некоторое управление доступом RBAC также на рекордном уровне. Будучи новичком yii2, я ищу лучший способ войти в логику, но бороться с документами.Аутентификация Yii2 на основе уровня записи
Пример:
- Таблица Дети упоминает ребенка, помимо многих других детей.
- Ребенок обычно имеет два родителя в таблице Родители.
- Помимо другого контроля доступа с помощью yii2-admin/user, эти два родителя могут просматривать и обрабатывать запись своего собственных детей, но не других.
- зарегистрированный пользователь является родительским.
Пример таблицы Дети:
|id|name|age|
|1|Max|10|
|2|Moritz|11|
|3|Lena|8|
...
Пример таблицы Родители:
|id|relation|name|
|1|mother|Anna|
|2|father|Paul|
|3|mother|Lisa|
...
Пример таблицы Xref (Отношение к детей и Родители):
|child_id|parent_id|
|1|1|
|1|2|
|2|3|
|3|1|
|3|2|
...
Я думаю, что класс ActiveRecord Дети бы быть правильным местом для поведения, как это, не так ли? Есть ли у кого-нибудь пример кода, который указывает мне правильное направление для эффективного кода, , где Павел и Анна могли бы изменить запись для «Макс», но не для «Морица»?
Общепринято считать, что плохой дизайн используется RBAC на уровне записи. В вашем случае вы, вероятно, должны иметь метод «ActiveRecord», который принимает идентификатор пользователя «id» в качестве параметра и возвращает дочерние элементы. Фильтр уровня RBAC (независимо от того, можете ли вы писать/просматривать) должен находиться на уровне контроллера. –
Согласен, спасибо за подсказку. Будучи новичком в yii (не новичком в программировании), я хотел бы попросить фрагмент кода в качестве примера, чтобы встать на ноги. Вы можете помочь? – user3791488