sessions: use dedicated get_sessions_for_saml in SQL backend (#23972)

This commit is contained in:
Frédéric Péters 2018-05-21 23:31:55 +02:00
parent 96f57e96e3
commit 398ebbdda5
2 changed files with 11 additions and 8 deletions

View File

@ -321,6 +321,13 @@ class Session(QommonSession, CaptchaSession, StorableObject):
d[prefix + 'user_' + k] = v
return d
@classmethod
def get_sessions_for_saml(cls, name_identifier=Ellipsis, session_indexes=()):
return (x for x in cls.values()
if (not session_indexes
or x.lasso_session_index in session_indexes)
and name_identifier in (x.name_identifier or []))
class QommonSessionManager(QuixoteSessionManager):
def start_request(self):
@ -398,13 +405,8 @@ class StorageSessionManager(QommonSessionManager):
if session:
session.clean_form_tokens()
def get_sessions_for_saml(self, name_identifier = Ellipsis, \
session_indexes = ()):
ret = (x for x in self.values() \
if (not session_indexes \
or x.lasso_session_index in session_indexes) \
and name_identifier in (x.name_identifier or []))
return ret
def get_sessions_for_saml(self, name_identifier=Ellipsis, session_indexes=()):
return self.session_class.get_sessions_for_saml(name_identifier, session_indexes)
def get_session_for_saml(self, name_identifier = None, session_index = None):
if session_index:

View File

@ -1831,7 +1831,8 @@ class Session(SqlMixin, wcs.sessions.BasicSession):
setattr(o, k, v)
return o
def get_sessions_for_saml(self, name_identifier=Ellipsis, *args, **kwargs):
@classmethod
def get_sessions_for_saml(cls, name_identifier=Ellipsis, *args, **kwargs):
conn, cur = get_connection_and_cursor()
sql_statement = '''SELECT %s