aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rpkid/portal-gui/scripts/rpkigui-check-expired.py13
-rw-r--r--rpkid/rpki/gui/app/glue.py22
2 files changed, 24 insertions, 11 deletions
diff --git a/rpkid/portal-gui/scripts/rpkigui-check-expired.py b/rpkid/portal-gui/scripts/rpkigui-check-expired.py
index 1573de4d..64e334bf 100644
--- a/rpkid/portal-gui/scripts/rpkigui-check-expired.py
+++ b/rpkid/portal-gui/scripts/rpkigui-check-expired.py
@@ -17,7 +17,7 @@ __version__ = '$Id$'
from rpki.gui.cacheview.models import Cert
from rpki.gui.cacheview.views import cert_chain
from rpki.gui.app.models import ResourceCert, GhostbusterRequest
-from rpki.gui.app.glue import list_received_resources
+from rpki.gui.app.glue import list_received_resources, get_email_list
from rpki.irdb.models import ResourceHolderCA
from rpki.irdb import Zookeeper
from rpki.left_right import report_error_elt, list_published_objects_elt
@@ -184,16 +184,7 @@ for h in qs:
print s
if options.email:
- notify_emails = []
- qs = GhostbusterRequest.objects.filter(issuer=h)
- for gbr in qs:
- if gbr.email_address:
- notify_emails.append(gbr.email_address)
-
- if len(notify_emails) == 0:
- # fall back to the email address registered for this user
- user = Users.objects.get(username=h.handle)
- notify_emails.append(user.email)
+ notify_emails = get_email_list(h)
t = """This is an automated notice about the upcoming expiration of RPKI resources for the handle %s on %s. You are receiving this notification because your email address is either registered in a Ghostbuster record, or as the default email address for the account.\n\n""" % (h.handle, host)
diff --git a/rpkid/rpki/gui/app/glue.py b/rpkid/rpki/gui/app/glue.py
index 577f9c7b..66d4c368 100644
--- a/rpkid/rpki/gui/app/glue.py
+++ b/rpkid/rpki/gui/app/glue.py
@@ -121,9 +121,31 @@ def config_from_template(dest, a):
else:
print >>f, r,
+
def str_to_resource_range(prefix):
try:
r = resource_range_ipv4.parse_str(prefix)
except BadIPResource:
r = resource_range_ipv6.parse_str(prefix)
return r
+
+
+def get_email_list(conf):
+ """Return a list of the contact emails for this user.
+
+ Contact emails are extract from any ghostbuster requests, and if there are
+ none, returns the default email for the web portal account.
+
+ """
+ notify_emails = []
+ qs = models.GhostbusterRequest.objects.filter(issuer=conf)
+ for gbr in qs:
+ if gbr.email_address:
+ notify_emails.append(gbr.email_address)
+
+ if len(notify_emails) == 0:
+ # fall back to the email address registered for this user
+ user = User.objects.get(username=conf.handle)
+ notify_emails.append(user.email)
+
+ return notify_emails