gpt4 book ai didi

model-view-controller - 授权应该是模型或 Controller 的一部分吗?

转载 作者:行者123 更新时间:2023-12-03 10:41:27 25 4
gpt4 key购买 nike

我正在编写一个具有一些 ACL 要求的 Web 应用程序:用户可以更改某些项目,某些项目可以由多个用户编辑,管理员可以编辑任何内容,经理可以编辑她组织内的所有内容等。

我正在使用游戏!框架,从 Secure 的外观来看模块,似乎将授权问题放在 Controller 中。但是,在我看来,授权问题是业务逻辑的一部分,因此应该在模型中。此外,我开始在需要重构的 Controller 中看到重复的逻辑。

另一方面,向模型添加授权意味着我必须有某种方法从模型中获取当前用户,这似乎不正确。或者,我可以为每个模型方法添加一个“current_user”参数,但这似乎更糟。

那么常见的做法是什么?我可以/应该将授权码放入模型中,还是将其保留在 Controller 中?

最佳答案

我认为这是一个灰色地带。有人可能会争辩说,用户访问是 HTTP 世界和面向对象世界之间映射的一部分。这就是 Controller 的目的(因此大量使用静态),以转换传入的请求,准备处理域模型上的业务规则。

我建议 Controller 逻辑绝对是控制对模型的访问的正确位置,特别是因为这主要在注释级别进行管理,并且身份验证被抽象为 Security 类。

关于model-view-controller - 授权应该是模型或 Controller 的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7261490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com