Module lib.server.sessions
Class used to store http connection sessions, it is useful if you define an user and password, on your site
Expand source code
# Distributed under Pycameresp License
# Copyright (c) 2023 Remi BERTHOLET
""" Class used to store http connection sessions, it is useful if you define
an user and password, on your site """
import time
import tools.encryption
import tools.strings
import tools.date
class Sessions:
""" Class manage an http sessions """
sessions = []
@staticmethod
def create(duration):
""" Create new session """
session = tools.encryption.gethash(tools.date.date_to_bytes())
Sessions.sessions.append((session, time.time() + duration))
return session
@staticmethod
def check(session):
""" Check if the session not expired """
result = False
if session is not None:
for sessionId, expiration in Sessions.sessions:
if sessionId == session:
result = True
break
Sessions.purge()
return result
@staticmethod
def purge():
""" Purge older sessions (only expired) """
current_time = time.time()
for sessionId, expiration in Sessions.sessions:
if expiration < current_time:
Sessions.sessions.remove((sessionId, expiration))
@staticmethod
def remove(sessionIdRemove):
""" Remove session """
for sessionId, expiration in Sessions.sessions:
if sessionId == sessionIdRemove:
Sessions.sessions.remove((sessionId, expiration))
Classes
class Sessions-
Class manage an http sessions
Expand source code
class Sessions: """ Class manage an http sessions """ sessions = [] @staticmethod def create(duration): """ Create new session """ session = tools.encryption.gethash(tools.date.date_to_bytes()) Sessions.sessions.append((session, time.time() + duration)) return session @staticmethod def check(session): """ Check if the session not expired """ result = False if session is not None: for sessionId, expiration in Sessions.sessions: if sessionId == session: result = True break Sessions.purge() return result @staticmethod def purge(): """ Purge older sessions (only expired) """ current_time = time.time() for sessionId, expiration in Sessions.sessions: if expiration < current_time: Sessions.sessions.remove((sessionId, expiration)) @staticmethod def remove(sessionIdRemove): """ Remove session """ for sessionId, expiration in Sessions.sessions: if sessionId == sessionIdRemove: Sessions.sessions.remove((sessionId, expiration))Class variables
var sessions
Static methods
def check(session)-
Check if the session not expired
Expand source code
@staticmethod def check(session): """ Check if the session not expired """ result = False if session is not None: for sessionId, expiration in Sessions.sessions: if sessionId == session: result = True break Sessions.purge() return result def create(duration)-
Create new session
Expand source code
@staticmethod def create(duration): """ Create new session """ session = tools.encryption.gethash(tools.date.date_to_bytes()) Sessions.sessions.append((session, time.time() + duration)) return session def purge()-
Purge older sessions (only expired)
Expand source code
@staticmethod def purge(): """ Purge older sessions (only expired) """ current_time = time.time() for sessionId, expiration in Sessions.sessions: if expiration < current_time: Sessions.sessions.remove((sessionId, expiration)) def remove(sessionIdRemove)-
Remove session
Expand source code
@staticmethod def remove(sessionIdRemove): """ Remove session """ for sessionId, expiration in Sessions.sessions: if sessionId == sessionIdRemove: Sessions.sessions.remove((sessionId, expiration))