5

シンプルなルート リソース ファクトリがあります。

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_editedit) または 1 つだけ ( special_edit) を「収集」しますか?

権限を広範囲に計算する「流れ」を説明してください。

4

1 に答える 1