我有一个简单的根资源工厂:
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
)?
请详细解释计算权限的“流程”。