X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-generate;h=b00125c36612eb8aecdf73d487d8f07feae7eb99;hb=1a82c47c414ddfe53d5444415761842672b6902b;hp=dfb3b3c59c109a281afd7ec47229ae848fbbef39;hpb=05cb0be6ff864b84947ab815e469f41d1f423d6c;p=mirror%2Fuserdir-ldap.git diff --git a/ud-generate b/ud-generate index dfb3b3c..b00125c 100755 --- a/ud-generate +++ b/ud-generate @@ -735,6 +735,16 @@ def GenMailList(l,File,Key): raise; Done(File,F,None); +def isRoleAccount(pwEntry): + if not pwEntry.has_key("objectClass"): + raise "pwEntry has no objectClass" + oc = pwEntry['objectClass'] + try: + i = oc.index('debianRoleAccount') + return True + except ValueError: + return False + # Generate the DNS Zone file def GenDNS(l,File,HomePrefix): F = None; @@ -752,7 +762,7 @@ def GenDNS(l,File,HomePrefix): continue; # If the account has no PGP key, do not write it - if x[1].has_key("keyFingerPrint") == 0: + if x[1].has_key("keyFingerPrint") == 0 and not isRoleAccount(x[1]): continue; try: F.write("; %s\n"%(EmailAddress(x))); @@ -1015,7 +1025,7 @@ PasswdAttrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uid=*",\ "allowedHost","sshRSAAuthKey","dnsZoneEntry","cn","sn",\ "keyFingerPrint","privateSub","mailDisableMessage",\ "mailGreylisting","mailCallout","mailRBL","mailRHSBL",\ - "mailWhitelist", "sudoPassword"]); + "mailWhitelist", "sudoPassword", "objectClass"]); # Fetch all the hosts HostAttrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"sshRSAHostKey=*",\ ["hostname","sshRSAHostKey","purpose"]);