我正面临着一个架构问题。
我必须管理用户的权利,在一些资源上的拦截和授权。
我想要一种方法来获得资源的真正申请权利(阻止优先于授权)。
具有方法get_rights( User )的类RightsManager和具有方法get_rights()的类User,哪个更好?
我认为第二种解决方案更好,因为它的参数更少,但是在model User类中拥有权限管理是很奇怪的。将它放在RightsManager类中不是更符合逻辑吗?
我的程序是用python编写的,但我认为这无关紧要。
发布于 2013-02-05 16:31:02
用户实体可以在没有权限的情况下存在,因此最好不要将用户与权限结合在一起。与用户分开维护权限,并在调用get_rights时将用户作为参数传递。如果这被证明是冗长的,您可以将RightsManager扩展为类似于UserRightsManager的内容,其中可以在初始化期间传递用户,并且可以在内部查询权限时使用用户。
我在passed中广泛使用了Zend_Acl,发现他们的体系结构非常直观和有效。也许您可能想在进一步了解http://framework.zend.com/manual/1.12/en/zend.acl.advanced.html之前检查一下它
https://stackoverflow.com/questions/14702820
复制相似问题