[PATCH] Verify that email addresses to be linked do not exist
martin f. krafft
madduck at madduck.net
Tue Feb 2 12:21:32 EST 2010
Make sure (at form verification level) that email addresses that are
already in the persons table cannot be linked again.
Signed-off-by: martin f. krafft <madduck at madduck.net>
---
apps/patchwork/views/user.py | 34 ++++++++++++++++++++--------------
1 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/apps/patchwork/views/user.py b/apps/patchwork/views/user.py
index 359c786..6b36e0e 100644
--- a/apps/patchwork/views/user.py
+++ b/apps/patchwork/views/user.py
@@ -67,21 +67,27 @@ def link(request):
if request.method == 'POST':
form = UserPersonLinkForm(request.POST)
if form.is_valid():
- conf = UserPersonConfirmation(user = request.user,
- email = form.cleaned_data['email'])
- conf.save()
- context['confirmation'] = conf
-
- try:
- send_mail('Patchwork email address confirmation',
- render_to_string('patchwork/user-link.mail',
- context),
- settings.DEFAULT_FROM_EMAIL,
- [form.cleaned_data['email']])
- except Exception, ex:
- context['confirmation'] = None
- context['error'] = 'An error occurred during confirmation. ' + \
- 'Please try again later'
+ email = form.cleaned_data['email']
+
+ if Person.objects.filter(email__iexact = email):
+ context['error'] = 'This email address is already linked ' + \
+ 'to a user.'
+
+ else:
+ conf = UserPersonConfirmation(user = request.user,
+ email = email)
+ conf.save()
+ context['confirmation'] = conf
+
+ try:
+ send_mail('Patchwork email address confirmation',
+ render_to_string('patchwork/user-link.mail',
+ context),
+ settings.DEFAULT_FROM_EMAIL, [email])
+ except Exception, ex:
+ context['confirmation'] = None
+ context['error'] = 'An error occurred during confirmation. ' + \
+ 'Please try again later'
context['linkform'] = form
return render_to_response('patchwork/user-link.html', context)
--
1.5.6.5
More information about the Patchwork
mailing list