From f3752fdde9b43e0a3d78f314bda61852f5eb194c Mon Sep 17 00:00:00 2001 From: Thomas Viehmann Date: Tue, 22 Apr 2008 22:40:23 +0000 Subject: [PATCH] send mails to sponsors --- dak/process_unchecked.py | 2 ++ daklib/queue.py | 2 ++ daklib/utils.py | 22 ++++++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/dak/process_unchecked.py b/dak/process_unchecked.py index 30737ed1..d33408cf 100755 --- a/dak/process_unchecked.py +++ b/dak/process_unchecked.py @@ -1072,6 +1072,8 @@ def check_signed_by_key(): if uid_name == "": sponsored = 1 else: sponsored = 1 + if daklib.utils.is_email_alias(uid_email): + changes["sponsoremail"] = uid_email if sponsored and not may_sponsor: reject("%s is not authorised to sponsor uploads" % (uid)) diff --git a/daklib/queue.py b/daklib/queue.py index 05cd0be0..7b3aba09 100755 --- a/daklib/queue.py +++ b/daklib/queue.py @@ -279,6 +279,8 @@ class Upload: Subst["__MAINTAINER_FROM__"] = changes["changedby2047"] Subst["__MAINTAINER_TO__"] = "%s, %s" % (changes["changedby2047"], changes["maintainer2047"]) + if "sponsoremail" in changes: + Subst["__MAINTAINER_TO__"] += ", %s"%changes["sponsoremail"] Subst["__MAINTAINER__"] = changes.get("changed-by", "Unknown") else: Subst["__MAINTAINER_FROM__"] = changes["maintainer2047"] diff --git a/daklib/utils.py b/daklib/utils.py index 16cc1ff1..f2024b98 100755 --- a/daklib/utils.py +++ b/daklib/utils.py @@ -468,6 +468,14 @@ def which_apt_conf_file (): else: return default_apt_config +def which_alias_file(): + hostname = socket.gethostbyaddr(socket.gethostname())[0] + aliasfn = '/var/lib/misc/'+hostname+'/forward-alias' + if os.path.exists(aliasfn): + return aliasfn + else: + return None + ################################################################################ # Escape characters which have meaning to SQL's regex comparison operator ('~') @@ -1148,6 +1156,20 @@ If 'dotprefix' is non-null, the filename will be prefixed with a '.'.""" ################################################################################ +# checks if the user part of the email is listed in the alias file + +def is_email_alias(email): + aliasfn = which_alias_file() + uid = email.split('@')[0] + if not aliasfn: + return False + for l in open(aliasfn): + if l.startswith(uid+': '): + return True + return False + +################################################################################ + apt_pkg.init() Cnf = apt_pkg.newConfiguration() -- 2.39.5