diff gpp/accounts/views.py @ 1:dbd703f7d63a

Initial import of sg101 stuff from private repository.
author gremmie
date Mon, 06 Apr 2009 02:43:12 +0000
parents
children b6263ac72052
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpp/accounts/views.py	Mon Apr 06 02:43:12 2009 +0000
@@ -0,0 +1,86 @@
+"""views for the accounts application"""
+
+import datetime
+import settings
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+from django.contrib import auth
+from django.http import HttpResponseRedirect
+from django.core.urlresolvers import reverse
+
+from accounts.models import PendingUser
+from accounts.forms import RegisterForm
+
+
+#######################################################################
+
+def register(request):
+   if request.user.is_authenticated():
+      return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL)
+
+   if request.method == 'POST':
+      form = RegisterForm(request.POST)
+      if form.is_valid():
+         form.save()
+         return HttpResponseRedirect(reverse('accounts.views.register_thanks'))
+   else:
+      form = RegisterForm()
+
+   return render_to_response('accounts/register.html', {
+            'form': form,
+         },
+         context_instance = RequestContext(request))
+
+#######################################################################
+
+def register_thanks(request):
+   if request.user.is_authenticated():
+      return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL)
+
+   return render_to_response('accounts/register_thanks.html',
+         context_instance = RequestContext(request))
+
+#######################################################################
+
+def register_confirm(request, username, key):
+   if request.user.is_authenticated():
+      return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL)
+   
+   # purge expired users
+
+   PendingUser.objects.purge_expired()
+
+   try:
+      pending_user = PendingUser.objects.get(username = username)
+   except PendingUser.DoesNotExist:
+      return render_to_response('accounts/register_failure.html', {
+         'username': username,
+         },
+         context_instance = RequestContext(request))
+
+   if pending_user.key != key:
+      return render_to_response('accounts/register_failure.html', {
+         'username': username,
+         },
+         context_instance = RequestContext(request))
+
+   new_user = auth.models.User()
+
+   new_user.username = pending_user.username
+   new_user.first_name = ''
+   new_user.last_name = ''
+   new_user.email = pending_user.email
+   new_user.password = pending_user.password    # already been hashed
+   new_user.is_staff = False
+   new_user.is_active = True
+   new_user.is_superuser = False
+   new_user.last_login = datetime.datetime.now()
+   new_user.date_joined = new_user.last_login
+
+   new_user.save()
+   pending_user.delete()
+
+   return render_to_response('accounts/register_success.html', {
+      'username': username,
+      },
+      context_instance = RequestContext(request))