0

URLパラメーターにアクセスして何かを検証できるrepozeカスタム述語チェッカーを作成したいと思います。しかし、この許可チェッカーをすべてのコントローラーのスコープに設定するために allow_only を使用したいと思います。何かのようなもの:

class MyController(BaseController):

    allow_only = All(not_anonymous(msg=l_(u'You must be logged on')),
                     my_custom_predicate(msg=l_(u'something wrong')))

    def index(self, **kw):
        return dict()

次に、 my_custom_predicate は、すべての MyController メソッドのすべてのリクエストの URL パラメータをチェックし、それが行うことは何でも行う必要があります。問題はまさにそれです: my_custom_predicate が url パラメータをチェックできるようにする方法です。

4

1 に答える 1

0

ControllerProtectorを使用する必要があるかもしれません

from repoze.what.plugins.pylonshq import ControllerProtector

allow_only = All(not_anonymous(msg=l_(u'You must be logged on')),
                     my_custom_predicate(msg=l_(u'something wrong')))

@ControllerProtector(allow_only)
class MyController(BaseController):

    def index(self, **kw):
        return dict()

http://code.gustavonarea.net/repoze.what-pylons/API.htmlのドキュメントを参照してください。

于 2010-06-18T06:06:48.850 に答える