Test all LDAP operations
This commit is contained in:
		
							
								
								
									
										112
									
								
								Demo/pyasn1/readentrycontrol.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								Demo/pyasn1/readentrycontrol.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,112 @@ | |||||||
|  | #!/usr/bin/env python | ||||||
|  | """ | ||||||
|  | This sample script demonstrates the use of the pre-read control (see RFC 4527). | ||||||
|  |  | ||||||
|  | Originally contributed by Andreas Hasenack <ahasenack@terra.com.br> | ||||||
|  |  | ||||||
|  | Requires module pyasn1 (see http://pyasn1.sourceforge.net/) | ||||||
|  | """ | ||||||
|  |  | ||||||
|  | import pprint,ldap,ldap.modlist | ||||||
|  |  | ||||||
|  | from ldap.controls.readentry import PreReadControl,PostReadControl | ||||||
|  |  | ||||||
|  | uri = "ldap://localhost:2071/" | ||||||
|  |  | ||||||
|  | l = ldap.initialize(uri,trace_level=2) | ||||||
|  | l.simple_bind_s('uid=diradm,ou=schulung,dc=stroeder,dc=local','testsecret') | ||||||
|  |  | ||||||
|  | print """#--------------------------------------------------------------------------- | ||||||
|  | # Add new entry | ||||||
|  | #--------------------------------------------------------------------------- | ||||||
|  | """ | ||||||
|  |  | ||||||
|  | new_test_dn = "uid=ablume,ou=Users,ou=schulung,dc=stroeder,dc=local" | ||||||
|  | new_test_dn2 = "uid=ablume2,ou=Users,ou=schulung,dc=stroeder,dc=local" | ||||||
|  | new_test_entry = { | ||||||
|  |   'objectClass':['account','posixAccount'], | ||||||
|  |   'uid':['ablume'], | ||||||
|  |   'cn':['Anna Blume'], | ||||||
|  |   'uidNumber':['10000'], | ||||||
|  |   'gidNumber':['10000'], | ||||||
|  |   'homeDirectory':['/home/ablume'], | ||||||
|  | } | ||||||
|  |  | ||||||
|  | pr = PostReadControl(criticality=True,attrList=['entryUUID','entryCSN']) | ||||||
|  |  | ||||||
|  | msg_id = l.add_ext( | ||||||
|  |   new_test_dn, | ||||||
|  |   ldap.modlist.addModlist(new_test_entry), | ||||||
|  |   serverctrls = [pr] | ||||||
|  | ) | ||||||
|  | _,_,_,resp_ctrls = l.result3(msg_id) | ||||||
|  | print "resp_ctrls[0].dn:",resp_ctrls[0].dn | ||||||
|  | print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) | ||||||
|  |  | ||||||
|  | print """#--------------------------------------------------------------------------- | ||||||
|  | # Modify entry | ||||||
|  | #--------------------------------------------------------------------------- | ||||||
|  | """ | ||||||
|  |  | ||||||
|  | pr = PreReadControl(criticality=True,attrList=['uidNumber','gidNumber','entryCSN']) | ||||||
|  |  | ||||||
|  | msg_id = l.modify_ext( | ||||||
|  |   new_test_dn, | ||||||
|  |   [(ldap.MOD_INCREMENT, "uidNumber", "1"),(ldap.MOD_INCREMENT, "gidNumber", "1")], | ||||||
|  |   serverctrls = [pr] | ||||||
|  | ) | ||||||
|  | _,_,_,resp_ctrls = l.result3(msg_id) | ||||||
|  | print "resp_ctrls[0].dn:",resp_ctrls[0].dn | ||||||
|  | print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) | ||||||
|  |  | ||||||
|  | pr = PostReadControl(criticality=True,attrList=['uidNumber','gidNumber','entryCSN']) | ||||||
|  |  | ||||||
|  | msg_id = l.modify_ext( | ||||||
|  |   new_test_dn, | ||||||
|  |   [(ldap.MOD_INCREMENT, "uidNumber", "1"),(ldap.MOD_INCREMENT, "gidNumber", "1")], | ||||||
|  |   serverctrls = [pr] | ||||||
|  | ) | ||||||
|  | _,_,_,resp_ctrls = l.result3(msg_id) | ||||||
|  | print "resp_ctrls[0].dn:",resp_ctrls[0].dn | ||||||
|  | print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) | ||||||
|  |  | ||||||
|  | print """#--------------------------------------------------------------------------- | ||||||
|  | # Rename entry | ||||||
|  | #--------------------------------------------------------------------------- | ||||||
|  | """ | ||||||
|  |  | ||||||
|  | pr = PostReadControl(criticality=True,attrList=['uid']) | ||||||
|  | msg_id = l.rename( | ||||||
|  |   new_test_dn, | ||||||
|  |   "uid=ablume2", | ||||||
|  |   delold=1, | ||||||
|  |   serverctrls = [pr] | ||||||
|  | ) | ||||||
|  | _,_,_,resp_ctrls = l.result3(msg_id) | ||||||
|  | print "resp_ctrls[0].dn:",resp_ctrls[0].dn | ||||||
|  | print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) | ||||||
|  |  | ||||||
|  | pr = PreReadControl(criticality=True,attrList=['uid']) | ||||||
|  | msg_id = l.rename( | ||||||
|  |   new_test_dn2, | ||||||
|  |   "uid=ablume", | ||||||
|  |   delold=1, | ||||||
|  |   serverctrls = [pr] | ||||||
|  | ) | ||||||
|  | _,_,_,resp_ctrls = l.result3(msg_id) | ||||||
|  | print "resp_ctrls[0].dn:",resp_ctrls[0].dn | ||||||
|  | print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) | ||||||
|  |  | ||||||
|  | print """#--------------------------------------------------------------------------- | ||||||
|  | # Delete entry | ||||||
|  | #--------------------------------------------------------------------------- | ||||||
|  | """ | ||||||
|  |  | ||||||
|  | pr = PreReadControl(criticality=True,attrList=['*','+']) | ||||||
|  | msg_id = l.delete_ext( | ||||||
|  |   new_test_dn, | ||||||
|  |   serverctrls = [pr] | ||||||
|  | ) | ||||||
|  | _,_,_,resp_ctrls = l.result3(msg_id) | ||||||
|  | print "resp_ctrls[0].dn:",resp_ctrls[0].dn | ||||||
|  | print "resp_ctrls[0].entry:";pprint.pprint(resp_ctrls[0].entry) | ||||||
		Reference in New Issue
	
	Block a user
	 stroeder
					stroeder