From 9884735bfdf943f441dfd9114798480e5ffc9c3a Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Thu, 6 Jun 2019 08:08:19 -0500
Subject: [PATCH] Require one verified contact to create a notification

---
 gracedb/alerts/views.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gracedb/alerts/views.py b/gracedb/alerts/views.py
index 119fde13b..cfd36d883 100644
--- a/gracedb/alerts/views.py
+++ b/gracedb/alerts/views.py
@@ -79,6 +79,19 @@ class CreateNotificationView(MultipleFormView):
             n=form.instance.description))
         return super(CreateNotificationView, self).form_valid(form)
 
+    def get(self, request, *args, **kwargs):
+        # Make sure user has at least one verified contact; if not, redirect
+        # and display an error message
+        user_has_verified_contact = request.user.contact_set.filter(
+            verified=True).exists()
+        if not user_has_verified_contact:
+            messages.error(request, ('Error: you have no verified contacts. '
+                'Create and verify a contact before creating a notification.'))
+            return HttpResponseRedirect(reverse('alerts:index'))
+
+        return super(CreateNotificationView, self).get(request, *args,
+            **kwargs)
+
     superevent_form_valid = event_form_valid = form_valid
 
 
-- 
GitLab