31 lines
863 B
Python
Executable File
31 lines
863 B
Python
Executable File
#!/usr/bin/env python
|
|
import os
|
|
import hashlib
|
|
import argparse
|
|
import ldif
|
|
import sys
|
|
import ldap
|
|
import ldap.sasl
|
|
import ldap.dn
|
|
import ldap.modlist
|
|
import base64
|
|
|
|
conn = ldap.initialize('ldapi://')
|
|
conn.sasl_interactive_bind_s("", ldap.sasl.external())
|
|
|
|
|
|
parser = argparse.ArgumentParser(description='add pslPerson to all supannPerson.')
|
|
parser.add_argument('suffix', metavar='suffix', help='suffix of tree to add pslPerson')
|
|
args = parser.parse_args()
|
|
|
|
suffix = args.suffix
|
|
|
|
print 'Adding pslPerson objectClass to all suppanPerson in', suffix, 'missing it.'
|
|
result = conn.search_s(suffix, ldap.SCOPE_SUBTREE, '(&(objectClass=supannPerson)(!(objectClass=pslPerson)))')
|
|
for dn, record in result:
|
|
modlist = []
|
|
modlist.append((ldap.MOD_ADD, 'objectClass', 'pslPerson'))
|
|
conn.modify_s(dn, modlist)
|
|
print '- added pslPerson to', dn
|
|
print 'Finished.'
|