From: Mark Hymers Date: Thu, 24 Mar 2011 10:56:33 +0000 (+0000) Subject: deal with NULL source_acls X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=8ca3d5a2621a06e1be2476226c30c766e105ba06;p=dak.git deal with NULL source_acls Signed-off-by: Mark Hymers --- diff --git a/daklib/queue.py b/daklib/queue.py index 84ac6c98..549d45bf 100755 --- a/daklib/queue.py +++ b/daklib/queue.py @@ -1709,22 +1709,22 @@ class Upload(object): # Check any one-off upload blocks self.check_upload_blocks(fpr, session) - # Start with DM as a special case + # If the source_acl is None, source is never allowed + if fpr.source_acl is None: + if self.pkg.changes["architecture"].has_key("source"): + rej = 'Fingerprint %s may not upload source' % fpr.fingerprint + rej += '\nPlease contact ftpmaster if you think this is incorrect' + self.rejects.append(rej) + return + # Do DM as a special case # DM is a special case unfortunately, so we check it first # (keys with no source access get more access than DMs in one # way; DMs can only upload for their packages whether source # or binary, whereas keys with no access might be able to # upload some binaries) - if fpr.source_acl.access_level == 'dm': + elif fpr.source_acl.access_level == 'dm': self.check_dm_upload(fpr, session) else: - # Check source-based permissions for other types - if self.pkg.changes["architecture"].has_key("source") and \ - fpr.source_acl.access_level is None: - rej = 'Fingerprint %s may not upload source' % fpr.fingerprint - rej += '\nPlease contact ftpmaster if you think this is incorrect' - self.rejects.append(rej) - return # If not a DM, we allow full upload rights uid_email = "%s@debian.org" % (fpr.uid.uid) self.check_if_upload_is_sponsored(uid_email, fpr.uid.name)