79 lines
2.0 KiB
Python
79 lines
2.0 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
|
|
if not entry[1].get('profilePath'):
|
|
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()
|
|
|