123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #-*- coding: utf-8 -*-
- import os
- import copy
-
- from lodel.settings import Settings
- from lodel.auth.exceptions import *
-
- __sessions = dict()
-
- def _check_token(token):
- if len(token) != Settings.sessions.token_size:
- raise ClientAuthenticationFailure("Malformed session token")
- if token not in __sessions:
- raise ClientAuthenticationFailure("No session with this token")
-
- def start_session():
- token = os.urandom(Settings.sessions.token_size)
- __sessions[token] = dict()
- return token
-
- def destroy_session(token):
- _check_token(token)
- del(__sessions[token])
-
- def restore_session(token):
- _check_token(token)
- return __sessions[token]
-
- def save_session(token, datas):
- _check_token(token)
- __sessions[token] = copy.copy(datas)
-
-
- def get_value(token, name):
- _check_token(token)
- return __sessions[token][name]
-
- def del_value(token, name):
- _check_token(token)
- if name in __sessions[token]:
- del(__sessions[token][name])
|