Je souhaite créer un vérificateur de prédicat personnalisé Repoze capable d'accéder aux paramètres d'URL et de valider quelque chose. Mais je voudrais utiliser allow_only pour définir ce vérificateur d'autorisation dans toute la portée du contrôleur. Quelque chose comme:Comment transférer des paramètres d'URL pour repoher des vérificateurs de prédicats personnalisés
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()
alors, my_custom_predicate doit vérifier les paramters url pour chaque demande dans toutes les méthodes de MyController, et faire tout ce qu'il faut faire. Le problème est que: comment permettre à my_custom_predicate de vérifier les paramètres de l'URL, en l'utilisant comme je l'ai écrit plus haut.
Ok, ce qui est très similaire à utiliser allow_only dans le champ d'application du contrôleur. Mais comment my_custom_predicate connaitra-t-il les valeurs ** kw passées à l'index? – bluefoot
Utilisez un objet de requête global. kw = request.environ ['pylons.routes_dict'] – estin