Merge pull request #834 from dod-ccpo/limit-concurrent-logins

Prevent multiple active sessions
This commit is contained in:
richard-dds
2019-05-29 16:19:58 -04:00
committed by GitHub
10 changed files with 130 additions and 9 deletions

View File

@@ -0,0 +1,19 @@
from atst.domain.users import Users
class SessionLimiter(object):
def __init__(self, config, session, redis):
self.limit_logins = config["LIMIT_CONCURRENT_SESSIONS"]
self.session = session
self.redis = redis
def on_login(self, user):
if not self.limit_logins:
return
session_id = self.session.sid
self._delete_session(user.last_session_id)
Users.update_last_session_id(user, session_id)
def _delete_session(self, session_id):
self.redis.delete("session:{}".format(session_id))