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

77 lines
1.9 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)
users = []
for entry in ldap_conn.search_s("ou=ouGED,ou=ouPCF,ou=ouUsers,dc=win,dc=info,dc=pcf",
ldap.SCOPE_SUBTREE, "objectclass=user"):
if not entry[0]:
continue
try:
username = entry[1]['sAMAccountName'][0]
mail = entry[1]['mail'][0]
except KeyError:
continue
users.append({'username': username, 'mail': mail})
fd = file(options.output_filename, 'w')
print >> fd, file(cfg.get('general', 'template')).read()
for user in users:
vars = {'username': user.get('username'),
'username_lower': user.get('username').lower(),
'mail': user.get('mail'),
}
username = user.get('username')
vars.update(dict(cfg.items('variables')))
print >> fd, '''#[ged-gen-%(mail)s]
#default_type = dmsdocument
#default_directory = Members/%(username)s
#user = %(username)s
[ged-%(mail)s]
store_path = /srv/ocr/%(username)s
[/srv/ocr2/%(username)s]
store_path = /srv/ocr/%(username)s
#[ged-test-gen-%(mail)s]
#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)
if not os.path.exists('/srv/ocr2/%s' % username):
os.mkdir('/srv/ocr2/%s' % username)
fd.close()