]> git.decadent.org.uk Git - dak.git/blobdiff - dak/acl.py
dak/acl.py: allow comments and empty lines
[dak.git] / dak / acl.py
index e19b26912dd8234dc5148186431154a566f28b38..10a6372946177ecc6f113ed3c44a1f24eea75750 100644 (file)
@@ -20,7 +20,7 @@ import apt_pkg
 import sys
 
 from daklib.config import Config
-from daklib.dbconn import DBConn, Fingerprint, Uid, ACL
+from daklib.dbconn import DBConn, Fingerprint, Keyring, Uid, ACL
 
 def usage():
     print """Usage:
@@ -44,6 +44,7 @@ def get_fingerprint(entry, session):
         uid:<uid>
         name:<name>
         fpr:<fingerprint>
+        keyring:<keyring-name>
 
     @type  entry: string
     @param entry: ACL entry
@@ -62,6 +63,10 @@ def get_fingerprint(entry, session):
         q = q.join(Fingerprint.uid).filter(Uid.name == value)
     elif field == 'fpr':
         q = q.filter(Fingerprint.fingerprint == value)
+    elif field == 'keyring':
+        q = q.join(Fingerprint.keyring).filter(Keyring.keyring_name == value)
+    else:
+        raise Exception('Unknown selector "{0}".'.format(field))
 
     return q.all()
 
@@ -72,6 +77,9 @@ def acl_set_fingerprints(acl_name, entries):
     acl.fingerprints.clear()
     for entry in entries:
         entry = entry.strip()
+        if entry.startswith('#') or len(entry) == 0:
+            continue
+
         fps = get_fingerprint(entry, session)
         if len(fps) == 0:
             print "Unknown key for '{0}'".format(entry)