权限逻辑应该在 MVC 的哪一层(模型、视图、控制器)处理?
让我澄清一下。显然,UI(视图和控制器)需要能够访问权限以显示/隐藏组件并处理权限被拒绝的情况。很明显,权限应该由模型层持久化到数据库中。
但是像这样的“复杂”权限规则呢?
在我正在开发的 wiki/CMS 系统中,每个用户都有一组每页权限(查看、编辑、重命名等)。对于现有页面,这些权限是从数据库中检索的。对于新页面,假定用户拥有所有可能的权限(当他们创建/编辑它时)。
另一个例子是页面列表:
当前用户应该只能看到他们在页面列表中具有查看权限的页面。
控制器应该处理这个逻辑吗?还是应该 Controller 只负责调用 GetPermissions() 方法(或 GetPageList),而填充它的所有逻辑都在 Model 中处理?