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.
slapd-supann/lib/add-psl-person

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.'