From 485573c5d6ba02ca7869e35d97f655d72cfd81de Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 26 Jan 2012 23:11:11 -0400 Subject: [PATCH] Validate email in user details edit to avoid email clashes --- apps/common/views.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/common/views.py b/apps/common/views.py index b823b2b33d..c5d995bb59 100644 --- a/apps/common/views.py +++ b/apps/common/views.py @@ -12,6 +12,7 @@ from django.utils.http import urlencode from django.contrib.auth.views import login from django.utils.simplejson import dumps, loads from django.contrib.auth.views import password_change +from django.contrib.auth.models import User from .forms import (ChoiceForm, UserForm, UserForm_view, LicenseForm, EmailAuthenticationForm) @@ -175,9 +176,12 @@ def current_user_edit(request): if request.method == 'POST': form = UserForm(instance=request.user, data=request.POST) if form.is_valid(): - form.save() - messages.success(request, _(u'Current user\'s details updated.')) - return HttpResponseRedirect(next) + if User.objects.filter(email=form.cleaned_data['email']).exclude(pk=request.user.pk).count(): + messages.error(request, _(u'E-mail conflict, another user has that same email.')) + else: + form.save() + messages.success(request, _(u'Current user\'s details updated.')) + return HttpResponseRedirect(next) else: form = UserForm(instance=request.user)