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))
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))