From 9ad3b7dc55dbf112f943c1ecdfacdafdda9cc969 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Sun, 31 Jan 2016 07:01:43 +0100
Subject: [PATCH] Registration: ensure email is unique

---
 scipost/utils.py | 7 +++++++
 scipost/views.py | 2 ++
 2 files changed, 9 insertions(+)

diff --git a/scipost/utils.py b/scipost/utils.py
index 26be73d5f..aa384729d 100644
--- a/scipost/utils.py
+++ b/scipost/utils.py
@@ -31,6 +31,13 @@ class Utils(object):
         else:
             return False
 
+    @classmethod
+    def email_already_taken(cls):
+        if User.objects.filter(email=cls.form.cleaned_data['email']).exists():
+            return True
+        else:
+            return False
+
     @classmethod
     def create_and_save_contributor(cls):
         user = User.objects.create_user (
diff --git a/scipost/views.py b/scipost/views.py
index b690849f6..fdd750068 100644
--- a/scipost/views.py
+++ b/scipost/views.py
@@ -135,6 +135,8 @@ def register(request):
                 return render(request, 'scipost/register.html', {'form': form, 'errormessage': 'Your passwords must match'})
             if Utils.username_already_taken():
                 return render(request, 'scipost/register.html', {'form': form, 'errormessage': 'This username is already in use'})
+            if Utils.email_already_taken():
+                return render(request, 'scipost/register.html', {'form': form, 'errormessage': 'This email address is already in use'})
             Utils.create_and_save_contributor()
             Utils.send_registration_email()
             return HttpResponseRedirect('thanks_for_registering')
-- 
GitLab