Мы знаем, что авторизация — это сквозная проблема, и мы делаем все возможное, чтобы избежать слияния бизнес-логики в наших представлениях.
Но я все еще не нашел элегантного способа фильтровать компоненты пользовательского интерфейса (например, виджеты, элементы форм, таблицы и т. д.), используя текущие роли пользователей, не загрязняя представление бизнес-логикой. то же самое относится и к привязке модели.
Пример
Форма: создание продукта
Поля:
- Имя
- Цена
- Скидка
Роли:
Администратор ролей
- Is allowed to see and modify the Name field
- Разрешено видеть и изменять поле «Цена»
- Разрешено видеть и изменять Скидку
Помощник администратора роли
- Is allowed to see and modify the Name
- Разрешено видеть и изменять цену
Fields
, отображаемые в каждой роли, различаются, также model binding
необходимо игнорировать discount field
для роли "помощник администратора".
Как бы вы это сделали?