Я думаю, что здесь вам нужно реализовать набор методов запроса разрешений либо в ваших бизнес-объектах, либо в вашем контроллере. Примеры: CanRead (), CanEdit (), CanDelete ()
Когда страница отображается, она должна запросить бизнес-объект и определить авторизованные возможности пользователей, а также включить или отключить функциональность на основе этой информации. Бизнес-объект может, в свою очередь, использовать роли или дополнительные запросы к базе данных для определения разрешений активного пользователя.
Я не могу придумать способ декларативного определения этих разрешений централизованно. Они должны быть распределены в реализации функций. Однако если вы хотите улучшить дизайн, вы можете использовать внедрение зависимостей для вставки авторизаторов в ваши бизнес-объекты и, таким образом, для отдельных реализаций.
Есть некоторый код, который использует эту модель в книге Роки Лхотки. Новая версия еще не в Google .