Пожалуйста, рассмотрите следующую настройку:
- Многопользовательское веб-приложение.
- Арендаторы создают учетные записи компаний, а учетные записи компаний имеют учетные записи пользователей.
- У пользователей есть роли, есть специальная роль «Владелец» (пользователь, создавший учетную запись компании).
Я хотел бы, чтобы пользователи могли редактировать другие учетные записи пользователей (некоторые задачи администратора), но должны быть выполнены два условия:
- Никто не может редактировать данные владельца (кроме владельца, когда он редактирует свой собственный профиль, а редактирование собственного профиля - это то же самое, что редактирование пользователя).
- Пользователи могут получать доступ к данным пользователей и редактировать пользователей только в рамках учетной записи своей компании.
Приложение использует архитектуру MVC. В настоящее время я проверяю эти два условия в веб-слое, и он работает для меня, но у меня есть некоторые опасения. Если я использую какой-либо API или какой-либо другой тип потребителя данных, я могу «забыть» повторно сообщить эти условия. Кроме того, в приложении будут и другие объекты со схожими требованиями к функциональности, которые будут иметь схожие ограничения, поэтому мне лучше придумать какой-нибудь шаблон, который наложит ограничения на уровень доступа к данным.
Кто-нибудь может порекомендовать какой-нибудь подход, который стоит изучить?
Спасибо!