Make session limiter configurable
This commit is contained in:
19
atst/utils/session_limiter.py
Normal file
19
atst/utils/session_limiter.py
Normal 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))
|
Reference in New Issue
Block a user