forked from Github-Mirrors/canaille
Session vars are always lists
This commit is contained in:
parent
8932b390ba
commit
6875d0c15e
2 changed files with 8 additions and 21 deletions
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in a new issue