我想我可能弄乱了我的控制器。我有一个相当简单的网站,允许“Staff”或“Client”类型的用户查看Projects。员工可以访问所有项目,可以添加和删除它们,添加和删除用户,为客户分配项目权限等。
现在这意味着我有一个UserController和ProjectController,充满了身份验证属性(即客户端可以更改他的电子邮件,但没有其他类似的权限,客户端无法添加/删除/编辑项目,但可以浏览他们的内容)。
此外,根据用户类型/角色,我切换出菜单组件。我应该将我的控制器拆分为更窄的焦点,还是这是区域的候选者?我“觉得”我的大部分代码都在检查用户X是否可以根据他的角色和明确的每个项目权限执行操作Y.
PS。我多次重写这个主题,试图缩短它:\
答案 0 :(得分:2)
您是否考虑过像这样拆分控制器:
ClientUserController
ClientProjectController
StaffUserController
StaffProjectController
这样拆分可以让您轻松拥有每种用户类型的专用控制器和视图。使用每个“Staff”控制器顶部的单个Authentication属性来保护访问权限。
通过设置approriate路由,您可以为每个控制器类型维护友好URL:例如