Ejemplo n.º 1
0
def signup(request):
	if request.user.is_authenticated():
		return HttpResponseRedirect(reverse('accounts:index'))

	if request.method == 'POST':
		form = UserSignupForm(request.POST)
		if form.is_valid():
			form.save()
			request.session['post_register_user'] = form.cleaned_data
			return HttpResponseRedirect(reverse('accounts:post_register'))
	else:
		form = UserSignupForm()
	
	return render(request, 'accounts/signup.html', {
		'form': form,
	})
Ejemplo n.º 2
0
def index(request, referring_user_id=None):
	referring_user = None
	has_registered = False
	referrer_count = None
	
	if request.method == 'POST':
		form = UserSignupForm(request.POST)
		if form.is_valid():
			email = form.cleaned_data['email']
			user = DefaultBackend().register(
				request,
				password1 = None,
				email = email,
				username = email,
			)
			
			request.session['username'] = user.username
			
			SocialLaunchProfile.objects.create_from_request(user, request)
			
			messages.success(request, user_successfully_created_msg)
			return redirect('social_launch_referral', referring_user_id=user.id)
	else:
		form = UserSignupForm()
		form.fields['referrer_url'].initial = request.META.get('HTTP_REFERER', '')
		if referring_user_id is not None:
			try:
				referring_user = get_object_or_404(User, id=referring_user_id)
			except ValueError:
				raise Http404
		
		has_registered = request.user.is_authenticated() or request.session.get('username', '')
		
		if has_registered:
			referrer_count = SocialLaunchProfile.objects.filter(referring_user=referring_user).count()
			form = None
		else:
			form = UserSignupForm()
			
			if referrer_url_session_key not in request.session:
				request.session[referrer_url_session_key] = request.META.get('HTTP_REFERER', '')
			if referring_user_id_session_key not in request.session:
				request.session[referring_user_id_session_key] = referring_user_id if referring_user_id is not None else ''
		
	return render(request, 'social_launch/index.html', {'form' : form, 'has_registered' : has_registered, 'referrer_count' : referrer_count})
Ejemplo n.º 3
0
    def post(self, request):
        form = UserSignupForm(request.POST)
        if form.is_valid():
            form.save()

            # data = form.cleaned_data
            # request.session['post_register_user'] = data

            username = form.cleaned_data['username']
            password = form.cleaned_data['password1']

            user = authenticate(username=username, password=password)
            login(request, user)

            return HttpResponseRedirect(reverse('accounts:post_register'))
        else:
            return render(request, 'accounts/signup.html', {
                'form': form,
            })
Ejemplo n.º 4
0
    def post(self, request):
        form = UserSignupForm(request.POST)
        if form.is_valid():
            form.save()

            # data = form.cleaned_data
            # request.session['post_register_user'] = data

            username = form.cleaned_data['username']
            password = form.cleaned_data['password1']

            user = authenticate(username=username, password=password)
            login(request, user)

            return HttpResponseRedirect(reverse('accounts:post_register'))
        else:
            return render(request, 'accounts/signup.html', {
                'form': form,
            })
Ejemplo n.º 5
0
    def post(self, request):
        """Handles POST requests to 'register' named route.

        Raw data posted from form is received here,bound to form
        as dictionary and sent to unrendered django form for validation.

        Returns:
            A HttpResponse with a register template, otherwise, redirects to the
            login page.
        """
        usersignupform = UserSignupForm(request.POST)
        # get the user email address
        email = request.POST.get('email')
        signup_new_user = User.objects.filter(email__exact=email)
        if signup_new_user:
            args = {}
            args.update(csrf(request))
            mssg = "Email already taken please signup with another email"
            messages.add_message(request, messages.INFO, mssg)
            return render(request, 'authentication/register.html', args)

        if usersignupform.is_valid():
            usersignupform.save()
            new_user = User.objects.get(email__exact=email)

            # generate an activation hash url for new user account
            activation_hash = Hasher.gen_hash(new_user)
            activation_hash_url = request.build_absolute_uri(
                reverse(
                    'activate_account',
                    kwargs={'activation_hash': activation_hash},
                )
            )
            # compose the email
            activation_email_context = RequestContext(
                request,
                {'activation_hash_url': activation_hash_url,
                 'username': new_user.username,
                },
            )
            activation_email = SendGrid.compose(
                sender='Troupon <*****@*****.**>',
                recipient=new_user.email,
                subject='Troupon: ACTIVATE ACCOUNT',
                html=loader.get_template(
                    'authentication/activate_account_email.html'
                ).render(activation_email_context),
                text=loader.get_template(
                    'authentication/activate_account_email.txt'
                ).render(activation_email_context),
            )
            # send mail to new_user
            activation_status = SendGrid.send(activation_email)
            # inform the user of activation mail sent
            if activation_status == 200:
                new_user_email = new_user.email
                messages.add_message(
                    request, messages.INFO, new_user_email)
            return redirect(reverse('confirm_registration'))

        else:
            args = {}
            args.update(csrf(request))
            return render(request, 'authentication/register.html', {'form': usersignupform})
Ejemplo n.º 6
0
    def post(self, request):
        """Handles POST requests to 'register' named route.
        Raw data posted from form is received here,bound to form
        as dictionary and sent to unrendered django form for validation.
        Returns:
            A HttpResponse with a register template, otherwise, redirects to the
            login page.
        """
        usersignupform = UserSignupForm(request.POST)
        # get the user email address
        email = request.POST.get('email')
        signup_new_user = User.objects.filter(email__exact=email)
        if signup_new_user:
            args = {}
            mssg = "Email already taken please signup with another email"
            messages.add_message(request, messages.INFO, mssg)
            return render(request, 'register.html', args)

        if usersignupform.is_valid():
            usersignupform.save()
            new_user = User.objects.get(email__exact=email)

            if request.POST.get('is_merchant', False):
                new_user.userprofile.is_merchant = True
                new_user.userprofile.save()

            # generate an activation hash url for new user account
            activation_hash = Hasher.gen_hash(new_user)
            url_str = str(reverse_lazy('activate_account', kwargs={'activation_hash': activation_hash}))
            activation_hash_url = request.build_absolute_uri(url_str)

            # compose the email
            activation_email_context = RequestContext(
                request,
                {'activation_hash_url': activation_hash_url,
                 'username': new_user.username,
                },
            )

            receipient = str(new_user.email)

            subject, from_email, to = 'TheEventDiary: ACTIVATE ACCOUNT', EMAIL_SENDER, receipient
            html_content=loader.get_template('activate_account_email.html').render(activation_email_context)
            text_content=loader.get_template('activate_account_email.txt').render(activation_email_context)

            msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
            msg.attach_alternative(html_content, "text/html")
            response = msg.send()

            # inform the user of activation mail sent
            if response == 1:
                new_user_email = new_user.email
                messages.add_message(request, messages.INFO, new_user_email)

            return redirect(reverse_lazy('confirm_registration'))

        else:
            user_form = UserSignupForm()
            args = {}
            args["signupform"] = user_form
            return render(request, 'register.html', args)
Ejemplo n.º 7
0
    def post(self, request):
        """Handles POST requests to 'register' named route.
        Raw data posted from form is received here,bound to form
        as dictionary and sent to unrendered django form for validation.
        Returns:
            A HttpResponse with a register template, otherwise, redirects to the
            login page.
        """
        usersignupform = UserSignupForm(request.POST)
        # get the user email address
        email = request.POST.get('email')
        signup_new_user = User.objects.filter(email__exact=email)
        if signup_new_user:
            args = {}
            mssg = "Email already taken please signup with another email"
            messages.add_message(request, messages.INFO, mssg)
            return render(request, 'register.html', args)

        if usersignupform.is_valid():
            usersignupform.save()
            new_user = User.objects.get(email__exact=email)

            if request.POST.get('is_merchant', False):
                new_user.userprofile.is_merchant = True
                new_user.userprofile.save()

            # generate an activation hash url for new user account
            activation_hash = Hasher.gen_hash(new_user)
            url_str = str(
                reverse_lazy('activate_account',
                             kwargs={'activation_hash': activation_hash}))
            activation_hash_url = request.build_absolute_uri(url_str)

            # compose the email
            activation_email_context = RequestContext(
                request,
                {
                    'activation_hash_url': activation_hash_url,
                    'username': new_user.username,
                },
            )

            receipient = str(new_user.email)

            subject, from_email, to = 'TheEventDiary: ACTIVATE ACCOUNT', EMAIL_SENDER, receipient
            html_content = loader.get_template(
                'activate_account_email.html').render(activation_email_context)
            text_content = loader.get_template(
                'activate_account_email.txt').render(activation_email_context)

            msg = EmailMultiAlternatives(subject, text_content, from_email,
                                         [to])
            msg.attach_alternative(html_content, "text/html")
            response = msg.send()

            # inform the user of activation mail sent
            if response == 1:
                new_user_email = new_user.email
                messages.add_message(request, messages.INFO, new_user_email)

            return redirect(reverse_lazy('confirm_registration'))

        else:
            user_form = UserSignupForm()
            args = {}
            args["signupform"] = user_form
            return render(request, 'register.html', args)