Advertisement
Guest User

Untitled

a guest
May 17th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. #
  2. # Login/Sign in page
  3. #
  4. def log_in( request ):
  5.  
  6. menu_nodes = MenuNode.objects.filter( is_root=True )
  7.  
  8. if( request.user.is_authenticated ):
  9. return HttpResponseRedirect( reverse( "index" ))
  10. #
  11. # Incomming post http request
  12. #
  13. if( request.method == 'POST' ):
  14. #
  15. # Hydrate forms
  16. #
  17. sign_form = SignInForm( request.POST )
  18. login_form = LoginForm( request.POST )
  19. #
  20. # SignInForm submit handle
  21. #
  22. if( sign_form.is_valid()):
  23. #
  24. # Get securized form's data
  25. #
  26. cleaned_data = sign_form.clean()
  27. #
  28. # Display message if user already exist
  29. #
  30. if( User.objects.filter( username=cleaned_data.get( 'email' )).filter( is_active = True ).count() != 0 ):
  31. user = User.objects.get( username=cleaned_data.get( 'email' ))
  32.  
  33. return render(request, 'login.html', LayoutBuilder().add_necessary_for_layout(request, {
  34. 'sign_form' : SignInForm() ,
  35. 'login_form' : login_form ,
  36. 'already_exist' : True }))
  37. else:
  38. #
  39. # buffering
  40. #
  41. email_username = cleaned_data.get( 'email' ).split( '@' )[0]
  42. parsed_email_username = re.findall( r"[\w]+", email_username )
  43. #
  44. # create user
  45. #
  46. user = User.objects.create_user(cleaned_data.get('email'), cleaned_data.get('email'), cleaned_data.get('password'))
  47. UserProfile(django_user = user).save()
  48. user.first_name = parsed_email_username[0].title()
  49. #
  50. # If look like a real couple of firstname/lastname -> parse as temp values
  51. #
  52. if(len(parsed_email_username) > 1):
  53. user.last_name = ''.join([''.join([i for i in part if not i.isdigit()]) + ' ' for part in parsed_email_username[1:] if len(''.join([i for i in part if not i.isdigit()])) > 0]).strip().title()
  54. #
  55. # Render success sign page
  56. #
  57. login( request, authenticate( username = cleaned_data.get( 'email' ), password = cleaned_data.get( 'password' )))
  58. return HttpResponseRedirect(reverse("index"))
  59. #
  60. # LoginForm submit handle
  61. #
  62. elif(login_form.is_valid()):
  63. cleaned_data = login_form.clean()
  64. user = authenticate( username = cleaned_data.get( 'email' ), password = cleaned_data.get( 'password' ))
  65. #print("authenticate result : {0}".format(user))
  66.  
  67. if(user != None): #LOGIN SUCESS
  68. cart = Cart.objects.get_or_create(session_key = request.session.session_key)[0]
  69. login(request, user)
  70. if(cart.cart_lines.exists()):
  71. cart.session_key = request.session.session_key
  72. cart.save()
  73. return HttpResponseRedirect( reverse( "index" ))
  74. else: #LOGIN FAIL
  75. return render(request, 'login.html', LayoutBuilder().add_necessary_for_layout(request, {
  76. 'sign_form' : SignInForm() ,
  77. 'login_form' : login_form ,
  78. 'echec_login' : True }))
  79. #
  80. # Regular display (display login form + sign in form)
  81. #
  82. return render( request, 'login.html', LayoutBuilder().add_necessary_for_layout(request, {
  83. 'sign_form' : SignInForm() ,
  84. 'login_form': LoginForm()}))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement