Какой подход к дизайну можно использовать, уже существует или новый для внедрения системы безопасности в веб-приложении MVC?
Возможно, есть шаблоны, лучшие практики, например, на некоторых популярных языках, например Java, .Net или что-то еще?
На каком уровне лучше его реализовать: модель или контроллер или что-то между ними?
Я сталкивался с тем, что примитивный подход приводит к распространению проверок безопасности среди многих контроллеров или моделей в зависимости от реализации, смешиваясь с кодом уровней.
Но для меня не очевидно, каким образом лучше проектировать безопасность.
У меня есть приложение MVC.
Мне нужна гибкая система прав доступа.
У меня есть и иерархия категорий и сущностей в категориях.
Некоторые пользователи могут редактировать / просматривать / добавлять / удалять одни из множества категорий, другие пользователи - другие категории.
Также требуется, чтобы в зависимости от роли пользователя некоторые поля модели не извлекались из БД (должен быть возвращен ноль)
Администраторы должны иметь возможность назначать разные права доступа.