This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
pfwbged.ocrloader/generate-ldap-users.py

67 lines
1.7 KiB
Python

#! /usr/bin/env python
import ConfigParser
import optparse
import os
import ldap
import sys
parser = optparse.OptionParser()
parser.add_option('--config', dest='config', default='ldap.ini')
parser.add_option('--output', dest='output_filename',
default='ocrloader-complete.ini')
parser.add_option('--bindpw', dest='bindpw')
(options, args) = parser.parse_args()
if not options.bindpw:
parser.error('Missing LDAP bind password')
cfg = ConfigParser.ConfigParser()
cfg.read(options.config)
ldap_conn = ldap.initialize(cfg.get('general', 'ldap_uri'))
ldap_conn.simple_bind_s(cfg.get('general', 'bind_dn'), options.bindpw)
usernames = []
for entry in ldap_conn.search_s("dc=win,dc=info,dc=pcf", ldap.SCOPE_SUBTREE, "objectclass=user"):
if not entry[0]:
continue
if not entry[1].get('profilePath'):
continue
try:
username = entry[1]['sAMAccountName'][0]
except KeyError:
continue
usernames.append(username)
fd = file(options.output_filename, 'w')
print >> fd, file(cfg.get('general', 'template')).read()
for username in usernames:
vars = {'username': username, 'username_lower': username.lower()}
vars.update(dict(cfg.items('variables')))
print username
print >> fd, '''[ged-%(username_lower)s@pfwb.be]
default_type = dmsdocument
default_directory = Members/%(username)s
user = %(username)s
[ged-file-%(username)s@pfwb.be]
store_path = /srv/ocr/%(username)s
[ged-test-%(username_lower)s@pfwb.be]
ged_base_url = %(test_server_url)s
default_type = dmsdocument
default_directory = Members/%(username)s
user = %(username)s
''' % vars
if not os.path.exists('/srv/ocr/%s' % username):
os.mkdir('/srv/ocr/%s' % username)
fd.close()