OIDs and NAMEs are checked for uniqueness
This commit is contained in:
		
							
								
								
									
										63
									
								
								Demo/schema.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								Demo/schema.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| import sys,ldap,ldap.schema | ||||
|  | ||||
| schema_attrs = ldap.schema.SCHEMA_ATTRS | ||||
|  | ||||
| ldap.set_option(ldap.OPT_DEBUG_LEVEL,0) | ||||
|  | ||||
| ldap._trace_level = 0 | ||||
|  | ||||
| subschemasubentry_dn,schema = ldap.schema.urlfetch(sys.argv[-1]) | ||||
|  | ||||
| if subschemasubentry_dn is None: | ||||
|   print 'No sub schema sub entry found!' | ||||
|   sys.exit(1) | ||||
|  | ||||
| if schema.non_unique_oids: | ||||
|   print '*** Schema errors ***' | ||||
|   print 'non-unique OIDs:\n','\r\n'.join(schema.non_unique_oids) | ||||
|  | ||||
| print '*** Schema from',repr(subschemasubentry_dn) | ||||
|  | ||||
| # Display schema | ||||
| for attr_type,schema_class in ldap.schema.SCHEMA_CLASS_MAPPING.items(): | ||||
|   print '*'*20,attr_type,'*'*20 | ||||
|   for element_id in schema.listall(schema_class): | ||||
|     se_orig = schema.get_obj(schema_class,element_id) | ||||
|     print attr_type,str(se_orig) | ||||
| print '*** Testing object class inetOrgPerson ***' | ||||
|  | ||||
| drink = schema.get_obj(ldap.schema.AttributeType,'favouriteDrink') | ||||
| if not drink is None: | ||||
|   print '*** drink ***' | ||||
|   print 'drink.names',repr(drink.names) | ||||
|   print 'drink.collective',repr(drink.collective) | ||||
|  | ||||
| inetOrgPerson = schema.get_obj(ldap.schema.ObjectClass,'inetOrgPerson') | ||||
| if not inetOrgPerson is None: | ||||
|   print inetOrgPerson.must,inetOrgPerson.may | ||||
|  | ||||
| print '*** person,organizationalPerson,inetOrgPerson ***' | ||||
| try: | ||||
|   print schema.attribute_types( | ||||
|     ['person','organizationalPerson','inetOrgPerson'] | ||||
|   ) | ||||
|   print schema.attribute_types( | ||||
|     ['person','organizationalPerson','inetOrgPerson'], | ||||
|     attr_type_filter = [ | ||||
|       ('no_user_mod',[0]), | ||||
|       ('usage',range(2)), | ||||
|     ]   | ||||
|   ) | ||||
| except KeyError,e: | ||||
|   print '***KeyError',str(e) | ||||
|  | ||||
|  | ||||
| schema.ldap_entry() | ||||
|  | ||||
| print str(schema.get_obj(ldap.schema.MatchingRule,'2.5.13.0')) | ||||
| print str(schema.get_obj(ldap.schema.MatchingRuleUse,'2.5.13.0')) | ||||
|  | ||||
| print str(schema.get_obj(ldap.schema.AttributeType,'name')) | ||||
| print str(schema.get_inheritedobj(ldap.schema.AttributeType,'cn',['syntax','equality','substr','ordering'])) | ||||
|  | ||||
| must_attr,may_attr = schema.attribute_types(['person','organizationalPerson','inetOrgPerson'],raise_keyerror=0) | ||||
		Reference in New Issue
	
	Block a user
	 stroeder
					stroeder