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.

users.py 1.5KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # -*- coding: utf-8 -*-
  2. from .base import get_response
  3. from ...exceptions import *
  4. from ...client import WebUiClient as WebUiClient
  5. from lodel.context import LodelContext
  6. LodelContext.expose_modules(globals(), {'lodel.logger': 'logger'})
  7. LodelContext.expose_dyncode(globals(), 'dyncode')
  8. ##@brief These functions are called by the rules defined in ../urls.py
  9. ## Their goal is to handle the user authentication
  10. ##@brief Controller's function to login a user, the corresponding form is in interface/users
  11. # @param request : the request (get or post)
  12. # @note the response is given in a html page called in get_response_function
  13. def signin(request):
  14. msg=''
  15. # The form send the login and password, we can authenticate the user
  16. if request.method == 'POST':
  17. login = request.form['inputLogin']
  18. WebUiClient.authenticate(login, request.form['inputPassword'])
  19. # We get the informations about the user
  20. uid=WebUiClient['__auth_user_infos']['uid']
  21. leoclass=WebUiClient['__auth_user_infos']['leoclass']
  22. query_filter=list()
  23. query_filter.append((leoclass.uid_fieldname()[0],'=', uid))
  24. user = leoclass.get(query_filter)
  25. return get_response('users/welcome.html', username = user[0].data('login'))
  26. else:
  27. return get_response('users/signin.html')
  28. ##@brief Controller's function to logout a user
  29. # @param request : the request (get or post)
  30. # @note the response is given in the login html page
  31. def signout(request):
  32. WebUiClient.destroy()
  33. return get_response('users/signin.html')