0

我正面临一个架构问题。

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

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

拥有一个带有方法 get_rights(user) 的类 RightsManager 还是拥有一个带有方法 get_rights() 的 User 类更好

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

我的程序是用python编写的,但我认为没关系。

4

1 回答 1

0

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

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

于 2013-02-05T08:31:01.580 回答