X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=sidebyside;f=ud-generate;h=4514bdea0835c6cfc515ae7a4073153e7d6d0bbd;hb=0e34177ee3d1065114212d9d43fec4e13def8abc;hp=3b869810504b2a4b820ea0dfaffbc9d7684a692b;hpb=7d5f5f8886893115fac555847a6f01fcbd8b529e;p=mirror%2Fuserdir-ldap.git diff --git a/ud-generate b/ud-generate index 3b86981..4514bde 100755 --- a/ud-generate +++ b/ud-generate @@ -426,6 +426,7 @@ def GenGroup(File): GroupMap = {} for x in GroupIDMap.keys(): GroupMap[x] = [] + GroupHasPrimaryMembers = {} # Fetch all the users global PasswdAttrs @@ -433,6 +434,8 @@ def GenGroup(File): # Sort them into a list of groups having a set of users for x in PasswdAttrs: uid = GetAttr(x, "uid") + if 'gidNumber' in x[1]: + GroupHasPrimaryMembers[ int(x[1]["gidNumber"][0]) ] = True if x[1].has_key("uidNumber") == 0 or not IsInGroup(x): continue if x[1].has_key("supplementaryGid") == 0: @@ -446,9 +449,14 @@ def GenGroup(File): # Output the group file. J = 0 for x in GroupMap.keys(): - grouprevmap[GroupIDMap[x]] = x if GroupIDMap.has_key(x) == 0: continue + + if len(GroupMap[x]) == 0 and GroupIDMap[x] not in GroupHasPrimaryMembers: + continue + + grouprevmap[GroupIDMap[x]] = x + Line = "%s:x:%u:" % (x, GroupIDMap[x]) Comma = '' for I in GroupMap[x]: @@ -1182,6 +1190,7 @@ for host in HostAttrs: DoLink(GlobalDir, OutDir, "mail-whitelist") GenCDB(OutDir + "user-forward.cdb", filter(lambda x: IsInGroup(x), PasswdAttrs), 'emailForward') GenCDB(OutDir + "batv-tokens.cdb", filter(lambda x: IsInGroup(x), PasswdAttrs), 'bATVToken') + GenCDB(OutDir + "default-mail-options.cdb", filter(lambda x: IsInGroup(x), PasswdAttrs), 'mailDefaultOptions') # Compatibility. DoLink(GlobalDir, OutDir, "forward-alias")