No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.py 986B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #-*- coding: utf-8 -*-
  2. import os
  3. import copy
  4. from lodel.settings import Settings
  5. from lodel.auth.exceptions import *
  6. __sessions = dict()
  7. def _check_token(token):
  8. if len(token) != Settings.sessions.token_size:
  9. raise ClientAuthenticationFailure("Malformed session token")
  10. if token not in __sessions:
  11. raise ClientAuthenticationFailure("No session with this token")
  12. def start_session():
  13. token = os.urandom(Settings.sessions.token_size)
  14. __sessions[token] = dict()
  15. return token
  16. def destroy_session(token):
  17. _check_token(token)
  18. del(__sessions[token])
  19. def restore_session(token):
  20. _check_token(token)
  21. return __sessions[token]
  22. def save_session(token, datas):
  23. _check_token(token)
  24. __sessions[token] = copy.copy(datas)
  25. def get_value(token, name):
  26. _check_token(token)
  27. return __sessions[token][name]
  28. def del_value(token, name):
  29. _check_token(token)
  30. if name in __sessions[token]:
  31. del(__sessions[token][name])