2010-06-17 3 views
0

url 매개 변수에 액세스하고 무언가를 검증 할 수있는 repoze 사용자 정의 조건부 검사기를 만들고 싶습니다. 하지만 allow_only를 사용하여 모든 컨트롤러 범위에서이 권한 검사기를 설정하고 싶습니다. 뭔가 같은 :url 매개 변수를 전송하여 사용자 정의 조건부 검사기를 다시 작성하는 방법

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 paramters을 확인하고 무엇 이건을해야한다. 문제는 단지 : 위의 방법으로 사용하여 my_custom_predicate가 url 매개 변수를 검사하도록 허용하는 방법입니다.

답변

0
+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() 

참조 문서를 사용할 필요가있을 수 있습니다,이 컨트롤러 범위에 allow_only 사용이 매우 유사하다. 그러나 my_custom_predicate가 ** kw 값을 인덱스에 전달하는 방법을 알 수 있습니까? – bluefoot

+0

글로벌 요청 개체를 사용하십시오. kw = request.environ [ 'pylons.routes_dict'] – estin