From e9dc8e658380c666e2149d735c97a1116c71db08 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Mon, 13 Sep 2010 19:08:19 +0200 Subject: [PATCH] ud-generate: Add an extra output file called all-users.json That file can be used on one of the AFS hosts to create afs users. --- debian/changelog | 6 ++++-- debian/control | 2 +- ud-generate | 29 +++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index f5973c2..43d0128 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -userdir-ldap (0.3.7x) xnstable; urgency=low +userdir-ldap (0.3.78) unstable; urgency=low * Start refactoring ud-generate: - If environment variables UD_CREDENTIALS, UD_GENERATEDIR, UD_HMAC_KEY @@ -16,8 +16,10 @@ userdir-ldap (0.3.7x) xnstable; urgency=low * Add ud-krb-reset, and make ud-mailgate call it when receiving a mail at chpasswd@ saying 'Please change my Kerberos password'. + * ud-generate: Add an extra output file called all-users.json that + can be used on one of the AFS hosts to create afs users. - -- Peter Palfrader Fri, 10 Sep 2010 14:52:43 +0200 + -- Peter Palfrader Mon, 13 Sep 2010 19:08:34 +0200 userdir-ldap (0.3.77) unstable; urgency=low diff --git a/debian/control b/debian/control index 18a3739..03a8215 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Uploaders: Ryan Murray , Peter Palfrader Package: userdir-ldap Architecture: all Depends: ${python:Depends}, python-ldap, perl5, procmail, rsync, libnss-db -Suggests: libnet-ldap-perl, libcrypt-blowfish-perl, gnupg (>= 1.0.3), python-net, python-gdbm, libdate-manip-perl, liburi-perl, userdir-ldap-cgi +Suggests: libnet-ldap-perl, libcrypt-blowfish-perl, gnupg (>= 1.0.3), python-net, python-gdbm, libdate-manip-perl, liburi-perl, userdir-ldap-cgi, python (>= 2.6) | python-simplejson Description: Login User Directory in LDAP support scripts These scripts simplifiy the creation and management of a LDAP based user directory. Included are scripts to import existing passwd, group and shadow diff --git a/ud-generate b/ud-generate index 850bb51..02b3794 100755 --- a/ud-generate +++ b/ud-generate @@ -36,6 +36,13 @@ try: from cStringIO import StringIO except ImportError: from StringIO import StringIO +try: + import simplejson as json +except ImportError: + import json + if not '__author__' in json.__dict__: + sys.stderr.write("Warning: This is probably the wrong json module. We want python 2.6's json\n") + sys.stderr.write("module, or simplejson on pytyon 2.5. Let's see if/how stuff blows up.\n") global Allowed global CurrentHost @@ -202,6 +209,26 @@ def GenPasswd(accounts, File, HomePrefix, PwdMarker): # Return the list of users so we know which keys to export return userlist +def GenAllUsers(accounts, file): + f = None + try: + OldMask = os.umask(0022) + f = open(file + ".tmp", "w", 0644) + os.umask(OldMask) + + all = [] + for a in accounts: + all.append( { 'uid': a['uid'], + 'uidNumber': a['uidNumber'], + 'active': a.pw_active() and a.shadow_active() } ) + json.dump(all, f) + + # Oops, something unspeakable happened. + except: + Die(file, f, None) + raise + Done(file, f, None) + # Generate the shadow list def GenShadow(accounts, File): F = None @@ -1022,6 +1049,7 @@ GenKeyrings(GlobalDir) # Compatibility. GenForward(accounts, GlobalDir + "forward-alias") +GenAllUsers(accounts, 'all-accounts.json') accounts = filter(lambda a: not a in accounts_disabled, accounts) SSHFiles = GenSSHShadow(accounts) @@ -1091,6 +1119,7 @@ for host in HostAttrs: DoLink(GlobalDir, OutDir, "mail-rbl") DoLink(GlobalDir, OutDir, "mail-rhsbl") DoLink(GlobalDir, OutDir, "mail-whitelist") + DoLink(GlobalDir, OutDir, "all-accounts.json") GenCDB(filter(lambda x: IsInGroup(x), accounts), OutDir + "user-forward.cdb", 'emailForward') GenCDB(filter(lambda x: IsInGroup(x), accounts), OutDir + "batv-tokens.cdb", 'bATVToken') GenCDB(filter(lambda x: IsInGroup(x), accounts), OutDir + "default-mail-options.cdb", 'mailDefaultOptions') -- 2.20.1