Example #1
0
def signup(request):
    try:
        if request.method == 'POST':
            form = RegisterForm(request.POST) # A form bound to the POST data
            form.full_clean()
            if form.is_valid():
                username = form.cleaned_data['username']
                email = form.cleaned_data['email']
                password = form.cleaned_data['password']
                user = User.objects.create_user(username, email, password)
                user.first_name = form.cleaned_data['first_name']
                user.last_name = form.cleaned_data['last_name']

                new_profile = UserProfile(user=user)
                new_profile.ezweb_url = settings.EZWEB_URL

                if settings.REGISTRATION_CONFIRMATION:
                    user.is_active = False

                    salt = hashlib.sha224(str(random.random())).hexdigest()[:5]
                    activation_key = hashlib.sha224(salt+user.username).hexdigest()
                    key_expires = datetime.datetime.today() + datetime.timedelta(settings.ACCOUNT_ACTIVATION_DAYS)
                    new_profile.activation_key=activation_key
                    new_profile.key_expires=key_expires

                    confirm_url = request.build_absolute_uri('/confirm/' + new_profile.activation_key)
                    email_subject = _("Your new FAST account confirmation")
                    email_body = _("Hello, %s, and thanks for signing up for an FAST account.\n\nTo activate your account, click this link within %s days:\n\n%s") % (user.username, settings.ACCOUNT_ACTIVATION_DAYS, confirm_url)

                    email = EmailMessage(subject=email_subject, body=email_body, from_email=settings.REGISTRATION_SENDER, to = [user.email])
                    email.send()

                user.save()
                new_profile.save()

                user = authenticate(username=username, password=password)
                if user.is_active:
                    login(request, user)
                    return render_to_response('index.html',{}, context_instance=RequestContext(request))
                else:
                    return HttpResponseRedirect('/accounts/login/?next=/')

        return render_to_response('registration/register.html',{'form': form},
                  context_instance=RequestContext(request))
    except Exception, e:
        return render_to_response('registration/register.html',{'form': RegisterForm(),},
                  context_instance=RequestContext(request))
Example #2
0
def signup(request):
    try:
        if request.method == 'POST':
            form = RegisterForm(request.POST)  # A form bound to the POST data
            form.full_clean()
            if form.is_valid():
                username = form.cleaned_data['username']
                email = form.cleaned_data['email']
                password = form.cleaned_data['password']
                user = User.objects.create_user(username, email, password)
                user.first_name = form.cleaned_data['first_name']
                user.last_name = form.cleaned_data['last_name']

                new_profile = UserProfile(user=user)
                new_profile.ezweb_url = settings.EZWEB_URL

                if settings.REGISTRATION_CONFIRMATION:
                    user.is_active = False

                    salt = hashlib.sha224(str(random.random())).hexdigest()[:5]
                    activation_key = hashlib.sha224(salt +
                                                    user.username).hexdigest()
                    key_expires = datetime.datetime.today(
                    ) + datetime.timedelta(settings.ACCOUNT_ACTIVATION_DAYS)
                    new_profile.activation_key = activation_key
                    new_profile.key_expires = key_expires

                    confirm_url = request.build_absolute_uri(
                        '/confirm/' + new_profile.activation_key)
                    email_subject = _("Your new FAST account confirmation")
                    email_body = _(
                        "Hello, %s, and thanks for signing up for an FAST account.\n\nTo activate your account, click this link within %s days:\n\n%s"
                    ) % (user.username, settings.ACCOUNT_ACTIVATION_DAYS,
                         confirm_url)

                    email = EmailMessage(
                        subject=email_subject,
                        body=email_body,
                        from_email=settings.REGISTRATION_SENDER,
                        to=[user.email])
                    email.send()

                user.save()
                new_profile.save()

                user = authenticate(username=username, password=password)
                if user.is_active:
                    login(request, user)
                    return render_to_response(
                        'index.html', {},
                        context_instance=RequestContext(request))
                else:
                    return HttpResponseRedirect('/accounts/login/?next=/')

        return render_to_response('registration/register.html', {'form': form},
                                  context_instance=RequestContext(request))
    except Exception, e:
        return render_to_response('registration/register.html', {
            'form': RegisterForm(),
        },
                                  context_instance=RequestContext(request))