6ff7adb165
Co-authored-by: David Rodenkirchen <davidr.develop@gmail.com> Reviewed-on: Vereins-IT/ez-lan-manager#5
26 lines
680 B
Python
26 lines
680 B
Python
import secrets
|
|
from typing import Optional
|
|
|
|
from rio import UserSettings
|
|
|
|
from src.ez_lan_manager.types.SessionStorage import SessionStorage
|
|
|
|
|
|
class LocalData(UserSettings):
|
|
stored_session_token: Optional[str] = None
|
|
|
|
class LocalDataService:
|
|
def __init__(self) -> None:
|
|
self._session: dict[str, SessionStorage] = {}
|
|
|
|
def verify_token(self, token: str) -> Optional[SessionStorage]:
|
|
return self._session.get(token)
|
|
|
|
def set_session(self, session: SessionStorage) -> str:
|
|
key = secrets.token_hex(32)
|
|
self._session[key] = session
|
|
return key
|
|
|
|
def del_session(self, token: str) -> None:
|
|
self._session.pop(token, None)
|