Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # Login/Sign in page
- #
- def log_in( request ):
- menu_nodes = MenuNode.objects.filter( is_root=True )
- if( request.user.is_authenticated ):
- return HttpResponseRedirect( reverse( "index" ))
- #
- # Incomming post http request
- #
- if( request.method == 'POST' ):
- #
- # Hydrate forms
- #
- sign_form = SignInForm( request.POST )
- login_form = LoginForm( request.POST )
- #
- # SignInForm submit handle
- #
- if( sign_form.is_valid()):
- #
- # Get securized form's data
- #
- cleaned_data = sign_form.clean()
- #
- # Display message if user already exist
- #
- if( User.objects.filter( username=cleaned_data.get( 'email' )).filter( is_active = True ).count() != 0 ):
- user = User.objects.get( username=cleaned_data.get( 'email' ))
- return render(request, 'login.html', LayoutBuilder().add_necessary_for_layout(request, {
- 'sign_form' : SignInForm() ,
- 'login_form' : login_form ,
- 'already_exist' : True }))
- else:
- #
- # buffering
- #
- email_username = cleaned_data.get( 'email' ).split( '@' )[0]
- parsed_email_username = re.findall( r"[\w]+", email_username )
- #
- # create user
- #
- user = User.objects.create_user(cleaned_data.get('email'), cleaned_data.get('email'), cleaned_data.get('password'))
- UserProfile(django_user = user).save()
- user.first_name = parsed_email_username[0].title()
- #
- # If look like a real couple of firstname/lastname -> parse as temp values
- #
- if(len(parsed_email_username) > 1):
- 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()
- #
- # Render success sign page
- #
- login( request, authenticate( username = cleaned_data.get( 'email' ), password = cleaned_data.get( 'password' )))
- return HttpResponseRedirect(reverse("index"))
- #
- # LoginForm submit handle
- #
- elif(login_form.is_valid()):
- cleaned_data = login_form.clean()
- user = authenticate( username = cleaned_data.get( 'email' ), password = cleaned_data.get( 'password' ))
- #print("authenticate result : {0}".format(user))
- if(user != None): #LOGIN SUCESS
- cart = Cart.objects.get_or_create(session_key = request.session.session_key)[0]
- login(request, user)
- if(cart.cart_lines.exists()):
- cart.session_key = request.session.session_key
- cart.save()
- return HttpResponseRedirect( reverse( "index" ))
- else: #LOGIN FAIL
- return render(request, 'login.html', LayoutBuilder().add_necessary_for_layout(request, {
- 'sign_form' : SignInForm() ,
- 'login_form' : login_form ,
- 'echec_login' : True }))
- #
- # Regular display (display login form + sign in form)
- #
- return render( request, 'login.html', LayoutBuilder().add_necessary_for_layout(request, {
- 'sign_form' : SignInForm() ,
- 'login_form': LoginForm()}))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement