【发布时间】:2017-08-08 18:17:03
【问题描述】:
假设我的模型在用户使用时受权,但在业务逻辑使用时不受权。
例如: 当一个人创建一个项目 A 时,它会自动创建一个项目 B。
如果用户想要创建 A 或 B,他必须有权创建 A 或 B。 但是从 A 创建 B 时的业务逻辑不需要任何权限。
如果我将正确的系统放在业务逻辑中,我会得到对会话有很强依赖性的类,如果登录用户没有权限,A 就无法创建 B。
如果我将权限管理放在控制器中,我觉得我的业务逻辑不安全,因为任何程序员都可能忘记在创建项目之前测试权限并且不会被停止,而且如果 2 个控制器能够进行代码复制,则会出现代码重复出于任何原因更新项目。
你会把权限管理放在哪里?
我可以创建控制器使用的每个对象的继承,并实现权限限制,而业务逻辑将访问对象本身。控制器创建 UserA、UserB,而对象 A 直接创建 B 对象。 但听起来我必须复制(继承)必须在控制器中使用的每一个业务逻辑对象,因此其中有 80% 是固定的。
【问题讨论】:
-
你应该为你的类举一个具体的例子。很难理解 A 类和 B 类是什么。 A 是用户模型吗?
-
你有中间件吗?您还可以使用服务来共享代码
标签: php model-view-controller rights