feat: implement ALWAYS_REMEMBER functionality for session persistence in login

This commit is contained in:
Théophile Diot 2024-12-04 11:02:13 +01:00
parent 35d61bb898
commit d5bb9f913c
No known key found for this signature in database
GPG key ID: FA995104A0BA376A

View file

@ -1,4 +1,5 @@
from datetime import datetime
from os import getenv
from flask import Blueprint, flash as flask_flash, redirect, render_template, request, session, url_for
from flask_login import current_user, login_user
@ -37,7 +38,14 @@ def login_page():
else:
session["session_id"] = ret
if not login_user(ui_user, remember=request.form.get("remember-me") == "on"):
always_remember = getenv("ALWAYS_REMEMBER", "no").lower() == "yes"
remember_me = always_remember or request.form.get("remember-me") == "on"
if remember_me:
if always_remember:
LOGGER.info("ALWAYS_REMEMBER is set to yes, so the sessions will always be remembered")
session.permanent = True
if not login_user(ui_user, remember=remember_me):
flask_flash("Couldn't log you in, please try again", "error")
return (render_template("login.html", error="Couldn't log you in, please try again"),)