Я думаю, что, возможно, сделал путаницу своих контроллеров. У меня есть довольно простой сайт, который разрешает пользователям типа "Штат" или "Клиент" к представлению Projects. Сотрудники имеют доступ ко всем проектам, могут добавить и удалить их, добавить и удалить пользователей, присвоить клиентское разрешение проектам, и т.д.
Как есть это означает, что у меня есть UserController и ProjectController, замусоренный атрибутами Аутентификации (т.е. таким образом, Клиент может изменить свою электронную почту, но ничто иное как полномочия и Клиенты не может добавлять/удалять/редактировать проекты, но может просмотреть их содержание).
И также, на основе пользовательского типа/роли, я выключаю компоненты меню. Я должен разделять свои контроллеры, чтобы иметь более узкий фокус, или действительно ли это - кандидат на области? Я "чувствую", любят к большой части моего кода, проверяет, может ли пользователь X сделать действие Y и на основе его роли И НА ОСНОВЕ явных полномочий на проект.
PS. Я, несколько раз переписывал предмет пытаясь сделать его короче:\
Рассматривали ли вы возможность разделения контроллеров следующим образом:
ClientUserController
ClientProjectController
StaffUserController
StaffProjectController
Такое разделение позволит вам легко иметь специализированные контроллеры и представления для каждого типа пользователей. Используйте единый атрибут Authentication в верхней части каждого контроллера "Staff" для защиты доступа.
Настроив соответствующие маршруты, вы можете создать дружественные URL для каждого типа контроллера: например,