Правильно ли я понимаю, что должен проверять роль пользователя, а не какие-то права. То есть будет какая-то таблица документ+роль, со связью многие ко многим, через которую я буду проверять доступность документов пользователю через роль, так?
можешь по роли, но рекомендация проверки авторизаций на действия завязывать на разрешения
я просто не догоняю как через разрешения сделать. это мне на каждый отдельный документ заводить свое разрешение?
роль это объединение разрешений, вот хорошая схема показывающая что это такое: https://www.phprbac.net/
да, я понимаю связи эти все. не понимаю как в моем конкретном случае, на каждый документ определить разрешение
сначала реши, нужно ли оно тебе права, в отличии от ролей, более гибки но и более сложны
а это уже зависит от задачи, также у документа может быть собственник (owner) и возможно авторизация будет от этого завесить, а не только от роли или разрешения
у меня загружаются документ, и выбирают из списка роли, которым можно смотреть документ. в этом случае лучше роли использовать или разрешения?
зависит от задачи, что у тебя поставлена. ведь помимо ролей, разрешений ,у пользователей может быть принадлежи к какой то группе пользователей, например "отдел бухгалтерии" и только например для этого отдела создан данный документ. на твой вопрос нет однозначного ответа. в рамках ларавел, если у документа есть модель к которой он подвязан, то я бы создал Policy, добавил метод view и уже в нем делал проверки на доступ к данной сущности,это позволит в случае изменения логики проверки, внести корректировку в одном месте, а не бугать по системе и перераспределять роли, разрешения. а также Policy позволит делать проверки на уровне пользователя через can(), на уровне маршрутов, через посредника can, через Allow в ресурсных контроллерах, может еще что-то я упустил, а самое главное, что вся логика в одном месте
Обсуждают сегодня