【发布时间】:2015-05-21 20:26:18
【问题描述】:
我有一个简单的根资源工厂:
class Root:
__acl__ = [
(Allow, Authenticated, 'edit')
]
现在对于一些“特殊”路线,我需要创建另一个资源工厂
config.add_route('special', '/special/test', factory=SpecialFactory)
class SpecialFactory:
__acl__ = [
(Allow, Authenticated, 'special_edit')
]
现在,我想让Root 成为SpecialFactory 的父级——我应该怎么做?
这是正确的方法吗...
class SpecialFactory:
def __init__(self, request):
self.request = request
self.__parent__ = Root(request)
self.__name__ = 'special'
__acl__ = [
(Allow, Authenticated, 'special_edit')
]
我也不完全理解__name__ 的用途以及应该设置什么。
另外,Pyramid 什么时候会遍历__parent__ 链,什么时候不会?对于这样的视图配置:
@view_config(route_name='special', permission='special_edit')
def something(req):
pass
Pyramid 会“收集”两个权限(special_edit 和 edit)还是只收集一个权限(special_edit)?
请详细说明计算权限的“流程”。
【问题讨论】: