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,26 +12,14 @@ from flask_babel import gettext as _
|
||||||
|
|
||||||
|
|
||||||
def current_user():
|
def current_user():
|
||||||
if not session.get("user_dn"):
|
for dn in session.get("user_dn", [])[::-1]:
|
||||||
return None
|
|
||||||
|
|
||||||
if not isinstance(session.get("user_dn"), list):
|
|
||||||
del session["user_dn"]
|
|
||||||
return None
|
|
||||||
|
|
||||||
dn = session["user_dn"][-1]
|
|
||||||
try:
|
|
||||||
user = User.get(dn=dn)
|
user = User.get(dn=dn)
|
||||||
except ldap.LDAPError:
|
if user:
|
||||||
return None
|
return user
|
||||||
|
|
||||||
if not user:
|
session["user_dn"].remove(dn)
|
||||||
try:
|
|
||||||
session["user_dn"] = session["user_dn"][:-1]
|
|
||||||
except IndexError:
|
|
||||||
del session["user_dn"]
|
|
||||||
|
|
||||||
return user
|
return None
|
||||||
|
|
||||||
|
|
||||||
def user_needed():
|
def user_needed():
|
||||||
|
|
|
@ -71,11 +71,10 @@ class User(LDAPObject):
|
||||||
@classmethod
|
@classmethod
|
||||||
def logout(self):
|
def logout(self):
|
||||||
try:
|
try:
|
||||||
if isinstance(session["user_dn"], list):
|
session["user_dn"].pop()
|
||||||
session["user_dn"].pop()
|
if not session["user_dn"]:
|
||||||
else:
|
|
||||||
del session["user_dn"]
|
del session["user_dn"]
|
||||||
except (IndexError, KeyError):
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def has_password(self):
|
def has_password(self):
|
||||||
|
|
Loading…
Reference in a new issue