Как передать параметры URL для повторения пользовательских тестов предикатов
Я хотел бы создать пользовательскую проверку предикатов repoze, которая способна получить доступ к параметрам URL и что-то проверить. Но я хотел бы использовать 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 должен проверять параметры URL для каждого запроса в каждом методе MyController и делать то, что он делает. Проблема только в том, как разрешить my_custom_predicate проверять параметры URL, используя его так, как я писал выше.
1 ответ
Решение
Может быть, вам нужно использовать 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