【问题标题】:Rights management in the model class or in a separate class?模型类或单独类中的权限管理?
【发布时间】:2013-02-05 16:31:01
【问题描述】:

我遇到了架构问题。

我必须管理对某些资源具有禁止和授权的用户的权限。

我想要一种方法来获得资源的真正应用权限(禁止优先于授权)。

拥有一个带有get_rights(user)方法的类RightsManager会更好吗 或使用方法 get_rights() 拥有一个类 User

我认为第二种方案更好,因为它的参数较少,但是在模型User类中进行权限管理很奇怪。将它放在 RightsManager 类中不是更合乎逻辑吗?

我的程序是python的,不过我觉得没关系。

【问题讨论】:

    标签: python architecture


    【解决方案1】:

    用户实体可以在没有权限的情况下存在,因此最好不要将用户与权限耦合。将权限与用户分开维护,并在调用 get_rights 时将用户作为参数传递。如果这很冗长,您可以将 RightsManager 扩展为 UserRightsManager 之类的东西,在初始化期间可以传递用户,并且可以在查询权限时在内部使用用户。

    我已经相当广泛地使用了 Zend_Acl,发现他们的架构非常直观和有效。也许您可能想在进一步了解之前先检查一下http://framework.zend.com/manual/1.12/en/zend.acl.advanced.html

    【讨论】:

      猜你喜欢
      • 2015-06-26
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多