Try fixing the auth

This commit is contained in:
Alexis Métaireau 2022-02-18 17:40:06 +01:00
parent d1b92cc639
commit aabe6e3a06
2 changed files with 10 additions and 3 deletions

View file

@ -1,2 +1,4 @@
serve: serve:
./venv/bin/copanier serve --reload ./venv/bin/copanier serve --reload
pserve:
./venv/bin/gunicorn -k roll.worker.Worker copanier:app --bind 0.0.0.0:8000

View file

@ -18,13 +18,18 @@ async def auth_required(request, response):
else: else:
setattr(config, 'DEMO_MODE', False) setattr(config, 'DEMO_MODE', False)
logger = logging.getLogger('roll')
logger.info("auth required")
if request.route.payload and not request.route.payload.get("unprotected"): if request.route.payload and not request.route.payload.get("unprotected"):
logger.info("unprotected")
token = request.cookies.get("token") token = request.cookies.get("token")
email = None email = None
if token: if token:
logger.info("token detected")
decoded = utils.read_token(token) decoded = utils.read_token(token)
email = decoded.get("sub") email = decoded.get("sub")
if not email: if not email:
logger.info("no email detected")
response.redirect = f"/connexion?next={url(request.path)}" response.redirect = f"/connexion?next={url(request.path)}"
return response return response
@ -75,7 +80,6 @@ async def set_sesame(request, response, token):
if not decoded: if not decoded:
response.message("Sésame invalide :(", status="error") response.message("Sésame invalide :(", status="error")
else: else:
response.message("Yay ! Le sésame a fonctionné. Bienvenue à bord ! :-)")
response.cookies.set( response.cookies.set(
name="token", name="token",
value=token, value=token,
@ -83,6 +87,8 @@ async def set_sesame(request, response, token):
max_age=60 * 60 * 24 * 7, max_age=60 * 60 * 24 * 7,
samesite="Strict", samesite="Strict",
) )
request.cookies = response.cookies
response.message("Yay ! Le sésame a fonctionné. Bienvenue à bord ! :-)")
response.redirect = "/" response.redirect = "/"
@ -109,4 +115,3 @@ async def desactivate_demo(request, response):
saved_config.demo_mode_enabled = False saved_config.demo_mode_enabled = False
saved_config.persist() saved_config.persist()
response.redirect = "/" response.redirect = "/"