我们正在构建/设计下一代销售/订购/CRM 系统,该系统由客户(尤其是客户层次结构)、订单、促销活动等实体组成……系统的每个用户都应该分配一个或多个客户。用户应该以组织层次结构的形式组织起来。系统应根据当前用户设置控制对客户相关实体的访问。问题是它应该在客户和用户方向上以分层方式工作。这意味着如果用户已经从层次结构中分配了客户 X,他也应该能够与该客户的所有孩子一起操作。并且以与用户类似的方式 - 经理应该能够与允许其下属的所有与客户相关的实体进行操作。
我想使用 Rhino Security 来限制对系统中实体的操作的访问,但我不确定它是否适合这种复杂的场景。我目前的想法是,如果我能够开发一些能够为所有新的/修改的实体生成实体组的后台进程(可能基于服务总线)应该是可能的。然而,这意味着将有相当数量的实体组没有任何良好的意图背景。不会有诸如“不支付账单的客户”之类的组,而只有诸如“用户 X 的客户”之类的组,其中包含所有允许的客户。将有一些其他操作将以更多 Rhino 安全标准的方式进行控制,例如“只有经理才能使客户无效”
我很感激对这个问题的任何想法......