我正在编写一个具有一些ACL要求的Web应用程序:用户可以对某些项目进行更改,某些项目可能由多个用户编辑,管理员可以编辑任何内容并且管理员可以编辑她的组织内的所有内容等。授权应该是模型还是控制器的一部分?
我正在使用Play!框架,以及Secure
模块的外观,似乎将授权问题放在控制器中。但是,在我看来,授权问题是业务逻辑的一部分,因此应该在模型中。此外,我开始在控制器中看到需要重构的重复逻辑。
另一方面,向模型添加授权意味着我必须有某种方式从模型中获取当前用户,这似乎不正确。或者,我可以为每个模型方法添加一个“current_user”参数,但似乎更糟。
那么常用的做法是什么?可以/我应该将授权码放在模型中,还是放在控制器中?
那么,它是灰色地带,还是绝对正确? :) – itsadok
在我看来,我认为这是绝对正确的,但是,这是一个灰色地带,因此可以进行解释。那么,这取决于你是否同意我的解释:o) – Codemwnci