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 1.0KB

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