From 7c73d7ef417f304868ff5decb5691024f2bc4466 Mon Sep 17 00:00:00 2001 From: Piotr Mitros Date: Thu, 15 Mar 2012 15:50:15 -0400 Subject: [PATCH] Non-working code; Cale needs a commit/push --HG-- branch : pmitros-name-change --- student/models.py | 2 +- student/views.py | 15 ++++++++++++++- urls.py | 5 +++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/student/models.py b/student/models.py index e70d2170a3..c6592391ae 100644 --- a/student/models.py +++ b/student/models.py @@ -65,7 +65,7 @@ class PendingNameChange(models.Model): class PendingEmailChange(models.Model): user = models.OneToOneField(User, unique=True, db_index=True) - new_email = models.CharField(blank=True, max_length=255) + new_email = models.CharField(blank=True, max_length=255, db_index=True) #cache_relation(User.profile) diff --git a/student/views.py b/student/views.py index 4fe31816be..c3c3d4447c 100644 --- a/student/views.py +++ b/student/views.py @@ -264,7 +264,20 @@ def change_email_request(request): ## Maske sure it checks for existing e-mail conflicts if not request.user.is_authenticated: raise Http404 - pass + + if not request.user.check_password(request.POST['password']): + return HttpResponse(json.dumps({'success':False, + 'error':'Invalid password'})) + + new_email = request.POST['new_email'] + if len(User.objects.filter(email = new_email)) != 0: + ## CRITICAL TODO: Handle case for e-mails + return HttpResponse(json.dumps({'success':False, + 'error':'An account with this e-mail already exists.'})) + + + + request.POST['new_email'] @ensure_csrf_cookie def change_email_confirm(request): diff --git a/urls.py b/urls.py index cf0132abab..ed669a3e94 100644 --- a/urls.py +++ b/urls.py @@ -8,6 +8,8 @@ import django.contrib.auth.views # admin.autodiscover() urlpatterns = ('', + url(r'^email_change$', 'student.views.change_email_request'), + url(r'^email_confirm$', 'student.views.change_email_confirm'), url(r'^gradebook$', 'courseware.views.gradebook'), url(r'^event$', 'track.views.user_track'), url(r'^t/(?P