Hello,
Je développe une petite application web, servie par Flask. Dans cette application, j’ai le concept de "version", l’utilisateur fait ses modifications sur une certaine version. J’ai donc mis en place un <select>
dans la barre de navigation de mon site par lequel il peut choisir sur quelle version il travaille.
Voilà pour le contexte. Il me faut cependant un moyen pour m’assurer qu’une version est toujours présente à partir du moment où l’utilisateur est authentifié, j’ai donc pensé à utiliser un middleware:
class VersionSessionMiddleware:
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
if not constants.SESSION_VERSION_NAME in session:
session[constants.SESSION_VERSION_NAME] = constants.DEFAULT_VERSION
return self.app(environ, start_response)
Sauf que l’application plante en beauté :
RuntimeError: Working outside of request context
De plus, je voudrais définir une version que si l’utilisateur est authentifié sauf que current_user
me retourne None
dans le middleware.
Je me doute bien que ce n’est pas un middleware que je dois utiliser ici, quel outil serait le mieux adapté pour mon cas (i.e. s’assurer qu’une version est bien définie dans la session lorsque l’utilisateur est connecté, à n’importe quelle requête) ?
Merci et bonne journée.