summaryrefslogtreecommitdiffstats
path: root/views
diff options
context:
space:
mode:
authorAamir Khan <syst3m.w0rm@gmail.com>2012-07-01 06:14:25 -0400
committerAamir Khan <syst3m.w0rm@gmail.com>2012-07-01 06:14:25 -0400
commit67d5552db4e48582587b0a09ce5659422d2e2d25 (patch)
tree5268b01db4fa9375ac57336718310b4a0818525a /views
parentafd6cbf2f6911500df4c32417dc041192da41d62 (diff)
downloadhyperkitty-67d5552db4e48582587b0a09ce5659422d2e2d25.tar.gz
hyperkitty-67d5552db4e48582587b0a09ce5659422d2e2d25.tar.xz
hyperkitty-67d5552db4e48582587b0a09ce5659422d2e2d25.zip
Basic user registration up
Diffstat (limited to 'views')
-rw-r--r--views/accounts.py26
-rw-r--r--views/forms.py32
2 files changed, 58 insertions, 0 deletions
diff --git a/views/accounts.py b/views/accounts.py
index 1eeb8c9..b79943d 100644
--- a/views/accounts.py
+++ b/views/accounts.py
@@ -18,6 +18,7 @@ from django.utils.translation import gettext as _
from urllib2 import HTTPError
from urlparse import urlparse
+from forms import RegistrationForm
from gsoc.utils import log
def user_logout(request):
@@ -65,3 +66,28 @@ def user_profile(request, user_email = None):
})
return HttpResponse(t.render(c))
+
+
+def user_registration(request):
+ if request.user.is_authenticated():
+ # Already registed, redirect back to home page
+ return redirect('index')
+
+ if request.POST:
+ form = RegistrationForm(request.POST)
+ if form.is_valid():
+ # Save the user data.
+ form.save(form.cleaned_data)
+ user = authenticate(username=form.cleaned_data['username'],
+ password=form.cleaned_data['password1'])
+
+ if user is not None:
+ log('debug', user)
+ if user.is_active:
+ login(request,user)
+ return redirect('index')
+ else:
+ form = RegistrationForm()
+
+ return render_to_response('register.html', {'form': form}, context_instance=RequestContext(request))
+
diff --git a/views/forms.py b/views/forms.py
index a2aac0e..97e5550 100644
--- a/views/forms.py
+++ b/views/forms.py
@@ -1,4 +1,36 @@
from django import forms
+from django.core import validators
+from django.contrib.auth.models import User
+
+def isValidUsername(username):
+ try:
+ User.objects.get(username=username)
+ except User.DoesNotExist:
+ return
+ raise validators.ValidationError('The username "%s" is already taken.' % username)
+
+class RegistrationForm(forms.Form):
+
+ username = forms.CharField(label='username', help_text=None,
+ widget=forms.TextInput(
+ attrs={'placeholder': 'username...'}
+ ), required = True, validators=[isValidUsername]
+ )
+
+ email = forms.EmailField(required=True)
+
+ password1 = forms.CharField(widget=forms.PasswordInput)
+
+ password2 = forms.CharField(widget=forms.PasswordInput)
+
+ def save(self, new_user_data):
+ u = User.objects.create_user(new_user_data['username'],
+ new_user_data['email'],
+ new_user_data['password1'])
+ u.is_active = True
+ u.save()
+ return u
+
class AddTagForm(forms.Form):
tag = forms.CharField(label='', help_text=None,