这是一个相当奇怪的问题,但我只想弄清楚如何为我的用户创建正确的“权限”并慢慢得出“限制”可能是更好的方法的结论,除了我不能在线查看此方法的任何内容。所以我认为我在做一些逻辑错误。
我有一个货运系统。 它有几种类型的用户/角色/观点(?)。
他们都可以最终编辑货件。 但是供应商只允许在某些条件下进行编辑,例如货物尚未发货!然而,管理员和工厂工人可以做任何他们想做的事。供应商和工厂也只能编辑与其相关的货物。
首先,我想出了这些权限:
但等等,这适用于管理员,但我不希望工厂编辑其他工厂的货物(可能通过编辑POST数据或使用API)。供应商也一样。
现在进行编辑时,我必须确定用户是否是所有者,并使用该权限,或者如果用户是管理员,只是让他们按照自己的意愿行事。 这没关系..我猜。但是我必须根据情况编写一些逻辑来确定哪个权限实际上是有效的。这很烦人 - 除了“功能权限”我没有解决方案,我不知道如何正确实施。
让我们继续。现在我想限制供应商只能编辑未完成的货物。
现在假设我还想让供应商能够编辑下周未发货的货件。现在是什么。
右?因此,随着要求的不断变化,这变得荒谬。
所以来到我目前奇怪的解决方案,其中上面写的是“权限”,这是“添加”,而是从另一个方向看,并使它们“限制”,将被“减去”。
(管理员不需要任何东西) * EditOnlyIfRecievedToMyFactoryShipment(工厂) * EditOnlyIfIsUnfinishedShipment(供应商) * EditOnlyIfIsNotShippingInAWeekShipment( Supplier )
我在这做什么以及如何实现这一目标?围绕这个想法是否有某种设计模式?