Session vars are always lists

This commit is contained in:
Éloi Rivard 2022-12-10 20:47:47 +01:00
parent 8932b390ba
commit 6875d0c15e
2 changed files with 8 additions and 21 deletions

View file

@ -12,27 +12,15 @@ from flask_babel import gettext as _
def current_user():
if not session.get("user_dn"):
return None
if not isinstance(session.get("user_dn"), list):
del session["user_dn"]
return None
dn = session["user_dn"][-1]
try:
for dn in session.get("user_dn", [])[::-1]:
user = User.get(dn=dn)
except ldap.LDAPError:
return None
if not user:
try:
session["user_dn"] = session["user_dn"][:-1]
except IndexError:
del session["user_dn"]
if user:
return user
session["user_dn"].remove(dn)
return None
def user_needed():
def wrapper(view_function):

View file

@ -71,11 +71,10 @@ class User(LDAPObject):
@classmethod
def logout(self):
try:
if isinstance(session["user_dn"], list):
session["user_dn"].pop()
else:
if not session["user_dn"]:
del session["user_dn"]
except (IndexError, KeyError):
except KeyError:
pass
def has_password(self):