def _get_bytes_ldapobject(self, explicit=True): if explicit: kwargs = {'bytes_mode': True} else: kwargs = {} l = LDAPObject(server.get_url(), **kwargs) l.protocol_version = 3 l.set_option(ldap.OPT_REFERRALS,0) l.simple_bind_s(self.server.get_root_dn().encode('utf-8'), self.server.get_root_password().encode('utf-8')) return l
def _get_bytes_ldapobject(self, explicit=True): if explicit: kwargs = {'bytes_mode': True} else: kwargs = {} l = LDAPObject(server.get_url(), **kwargs) l.protocol_version = 3 l.set_option(ldap.OPT_REFERRALS, 0) l.simple_bind_s(self.server.get_root_dn().encode('utf-8'), self.server.get_root_password().encode('utf-8')) return l
def setUp(self): global server if server is None: server = SlapdObject() server.start() base = server.suffix suffix_dc = base.split(',')[0][3:] # insert some Foo* objects via ldapadd server.ldapadd("\n".join([ 'dn: ' + server.suffix, 'objectClass: dcObject', 'objectClass: organization', 'dc: ' + suffix_dc, 'o: ' + suffix_dc, '', 'dn: ' + server.root_dn, 'objectClass: applicationProcess', 'cn: ' + server.root_cn, '', "dn: cn=Foo1," + base, "objectClass: organizationalRole", "cn: Foo1", "", "dn: cn=Foo2," + base, "objectClass: organizationalRole", "cn: Foo2", "", "dn: cn=Foo3," + base, "objectClass: organizationalRole", "cn: Foo3", "", "dn: ou=Container," + base, "objectClass: organizationalUnit", "ou: Container", "", "dn: cn=Foo4,ou=Container," + base, "objectClass: organizationalRole", "cn: Foo4", "", ]) + "\n") l = LDAPObject(server.ldap_uri, bytes_mode=False) l.protocol_version = 3 l.set_option(ldap.OPT_REFERRALS, 0) l.simple_bind_s(server.root_dn, server.root_pw) self.ldap = l self.server = server
class Add(object): ''' Description: -------------------------------------------------------- Add a user to a group -------------------------------------------------------- ''' def __init__(self, server, user_email, password, dc, port = 389): self.dc = dc self.server = server self.port = port self.user_email = user_email self.pwd = password self.logger = logging.getLogger("ADQueryLogger") self.uri = 'ldap://' + self.server + ':' + str(self.port) def __connect(self): self.ldap_obj = LDAPObject(self.uri) self.ldap_obj.protocol_version = ldap.VERSION3 self.ldap_obj.set_option(ldap.OPT_REFERRALS,0) self.ldap_obj.simple_bind_s(self.user_email, self.pwd) def __disconnect(self): self.ldap_obj.unbind_ext_s() def add_group(self, gp_dn, user_dn): self.__connect() attrib = ([(ldap.MOD_ADD,'member', user_dn)]) success = False print type(gp_dn), gp_dn print type(user_dn), user_dn try: self.ldap_obj.modify_s(gp_dn, attrib) success = True except Exception, e: print e finally:
def setUp(self): global server if server is None: server = slapd.Slapd() server.start() base = server.get_dn_suffix() # insert some Foo* objects via ldapadd server.ldapadd("\n".join([ "dn: cn=Foo1,"+base, "objectClass: organizationalRole", "cn: Foo1", "", "dn: cn=Foo2,"+base, "objectClass: organizationalRole", "cn: Foo2", "", "dn: cn=Foo3,"+base, "objectClass: organizationalRole", "cn: Foo3", "", "dn: ou=Container,"+base, "objectClass: organizationalUnit", "ou: Container", "", "dn: cn=Foo4,ou=Container,"+base, "objectClass: organizationalRole", "cn: Foo4", "", ])+"\n") l = LDAPObject(server.get_url()) l.protocol_version = 3 l.set_option(ldap.OPT_REFERRALS,0) l.simple_bind_s(server.get_root_dn(), server.get_root_password()) self.ldap = l self.server = server
'start_tls': 'startTLS', 'trace_level': 'trace', } ldap_url = MyLDAPUrl(sys.argv[1]) trace_level = int(ldap_url.trace_level or '0') print('***trace_level', trace_level) ldap.trace_level = trace_level l = LDAPObject( ldap_url.initializeUrl(), trace_level=trace_level, ) l.protocol_version = 3 l.set_option(ldap.OPT_REFERRALS, 0) l.simple_bind_s((ldap_url.who or ''), (ldap_url.cred or '')) result = l.search_s(ldap_url.dn, ldap_url.scope or ldap.SCOPE_SUBTREE, ldap_url.filterstr or '(objectClass=*)', ldap_url.attrs or ['*']) pprint.pprint(result) print('***DIAGNOSTIC_MESSAGE', repr(l.get_option(ldap.OPT_DIAGNOSTIC_MESSAGE))) l.unbind_s()
ldap_url = MyLDAPUrl(sys.argv[1]) trace_level = int(ldap_url.trace_level or '0') print '***trace_level',trace_level ldap.trace_level = trace_level l = LDAPObject( ldap_url.initializeUrl(), trace_level=trace_level, ) l.protocol_version = 3 l.set_option(ldap.OPT_REFERRALS,0) l.simple_bind_s((ldap_url.who or ''),(ldap_url.cred or '')) msgid = l.search( ldap_url.dn, ldap_url.scope or ldap.SCOPE_SUBTREE, ldap_url.filterstr or '(objectClass=*)', ldap_url.attrs or ['*'] ) print "msgid=",msgid count = 0 result = l.result(msgid, True, 0) while(result[0] != ldap.RES_SEARCH_RESULT):
def _get_ldapobject(self, bytes_mode=None): l = LDAPObject(self.server.ldap_uri, bytes_mode=bytes_mode) l.protocol_version = 3 l.set_option(ldap.OPT_REFERRALS,0) return l
class EditionTests(SlapdTestCase): @classmethod def setUpClass(cls): super().setUpClass() base = cls.server.suffix suffix_dc = base.split(',')[0][3:] # insert some Foo* objects via ldapadd cls.server.ldapadd("\n".join([ 'dn: '+cls.server.suffix, 'objectClass: dcObject', 'objectClass: organization', 'dc: '+suffix_dc, 'o: '+suffix_dc, '', 'dn: '+cls.server.root_dn, 'objectClass: applicationProcess', 'cn: '+cls.server.root_cn, '', "dn: cn=Foo1,"+base, "objectClass: organizationalRole", "cn: Foo1", "", "dn: cn=Foo2,"+base, "objectClass: organizationalRole", "cn: Foo2", "", "dn: cn=Foo3,"+base, "objectClass: organizationalRole", "cn: Foo3", "", "dn: ou=Container,"+base, "objectClass: organizationalUnit", "ou: Container", "", "dn: cn=Foo4,ou=Container,"+base, "objectClass: organizationalRole", "cn: Foo4", "", ])+"\n") def setUp(self): self.ldap = LDAPObject(self.server.ldap_uri, bytes_mode=False) self.ldap.protocol_version = 3 self.ldap.set_option(ldap.OPT_REFERRALS, 0) self.ldap.simple_bind_s( self.server.root_dn, self.server.root_pw ) def tearDown(self): self.ldap.unbind() def test_add_object(self): base = self.server.suffix dn = "cn=Added,ou=Container," + base self.ldap.add_ext_s(dn, [ ("objectClass", [b'organizationalRole']), ("cn", [b'Added']), ]) # Lookup the object result = self.ldap.search_s(base, ldap.SCOPE_SUBTREE, '(cn=Added)', ['*']) self.assertEqual(result, [ ("cn=Added,ou=Container," + base, {'cn': [b'Added'], 'objectClass': [b'organizationalRole']}), ]) # Delete object self.ldap.delete_s(dn) result = self.ldap.search_s( base, ldap.SCOPE_SUBTREE, '(cn=Added)', ['*'] ) self.assertEqual(result, [])