Разрешения/авторизация (а не аутентификация) - это сквозная проблема, я думаю.Где использовать разрешение домена
В архитектуре лука или гексагональной архитектуре, где следует разрешить выполнение? Примеры permissioning обязательно будет:
- Фильтрация данных возвращается к переднему концу (интерфейс, API, или иным образом)
- Проверка, что бизнес-операции могут быть выполнены на всех
В идеале, с помощью Принцип единой ответственности, код, который выполняет бизнес-операции и возвращает данные, вообще не должен знать о полномочиях пользователя. Реализации этой функции должны знать, как выполнять бизнес-операции или запрашивать репозиторий или службу домена - вот и все.
Будет ли обертка/фасад, реализующий тот же интерфейс, что и класс, выполняющий бизнес-операцию, или возвращающий данные, - это место для размещения этого разрешения? Или есть лучший способ?
Кроме того, если лучшая практика заключается в разрешении по видам деятельности, а не по роли, остается ли все еще говорить о том, что разрешение должно выполняться службой, целью которой является просто вернуть данные?