Ñò ³•ìJc@sŽdZddkZddkZddklZlZh dd6dd6dd6dd6dd6dd 6dd 6dd 6dd 6Zd d*d„ƒYZ de fd„ƒYZ ei i hdd6dd6dd6dd6dd6ƒZ de fd„ƒYZ de fd„ƒYZde fd„ƒYZd e fd!„ƒYZd"e fd#„ƒYZd$e fd%„ƒYZd&e fd'„ƒYZd(eifd)„ƒYZdS(+s  schema.py - support for subSchemaSubEntry information See http://www.python-ldap.org/ for details. \$Id: models.py,v 1.38 2009/10/31 19:52:45 stroeder Exp $ iÿÿÿÿN(t split_tokenstextract_tokenss1.3.6.1.4.1.1466.115.121.1.4s1.3.6.1.4.1.1466.115.121.1.5s1.3.6.1.4.1.1466.115.121.1.8s1.3.6.1.4.1.1466.115.121.1.9s1.3.6.1.4.1.1466.115.121.1.10s1.3.6.1.4.1.1466.115.121.1.23s1.3.6.1.4.1.1466.115.121.1.28s1.3.6.1.4.1.1466.115.121.1.40s1.3.6.1.4.1.1466.115.121.1.49t SchemaElementcBsfeZdZhd d6Zd d„Zd„Zd„Zd„Zdd„Z ddd „Z d „Z RS( sC Base class for all schema element classes. Not used directly! tDESCcCsT|oIt||iƒ}|i|dƒt||iƒ}|i||ƒndS(Ni(Rttoken_defaultstset_idRt _set_attrs(tselftschema_element_strtltd((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyt__init__*s cCs|dd|_dS(NRi(tdesc(RR R ((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR2scCs ||_dS(N(toid(Rt element_id((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR6scCs|iS(N(R (R((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pytget_id9sicCsC|o4|od||iddƒfSd||fSndSdS(Ns %s '%s't's\'s %s %st(treplace(Rtkeytvaluetquoted((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pytkey_attr<s t cCs|pdS|o5g}|D]}|d|iddƒq~}n|}t|ƒdjod||dfSd||i|ƒfSdS( NRs'%s'Rs\'is %s %sis %s ( %s )(Rtlentjoin(RRtvaluestsepRt_[1]Rt quoted_values((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pytkey_listFs5cCsEt|iƒg}|i|id|iddƒƒddi|ƒS(NRRis( %s )R(tstrR tappendRR R(Rtresult((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyt__str__Ss"N(N( t__name__t __module__t__doc__tNoneRR RRRRRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR"s       t ObjectClasscBskeZdZdZh d d6dd6dd6dd6dd6dd6dd6dd 6dd 6Zd „Zd „ZRS(sª ObjectClassDescription = "(" whsp numericoid whsp ; ObjectClass identifier [ "NAME" qdescrs ] [ "DESC" qdstring ] [ "OBSOLETE" whsp ] [ "SUP" oids ] ; Superior ObjectClasses [ ( "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" ) whsp ] ; default structural [ "MUST" oids ] ; AttributeTypes [ "MAY" oids ] ; AttributeTypes whsp ")" t objectClassestNAMERtOBSOLETEtSUPt STRUCTURALt AUXILIARYtABSTRACTtMUSTtMAYcCsÚ|ddj|_|d|_|dd|_|d|_|d|_d|_|ddjo d|_n|d djo d |_n|idjo)|d  o|id jo d|_n|d |_dS(NR*R)RiR/R0R.iR-iR+s2.5.6.0ttop(stop( R&tobsoletetnamesR tmusttmaytkindR tsup(RR R ((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRts      ,  cCst|iƒg}|i|id|iddƒƒ|i|id|iddƒƒ|i|id|iddƒƒ|ihdd 6d d6|iƒ|ihd d 6d d6d d6|i ƒ|i|id|i ddƒƒ|i|id|i ddƒƒddi |ƒS(NR)RiRR+Rs $ Ris OBSOLETEs STRUCTURALs ABSTRACTs AUXILIARYiR/R0s( %s )( RR R RR3RR R7R2R6R4R5R(RR!((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR"Žs"""")""(N(N((((R#R$R%tschema_attributeR&RRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR'Ys   ituserApplicationtuserApplicationsitdirectoryOperationitdistributedOperationit dSAOperationt AttributeTypecBs€eZdZdZh dd6dd6dd6dd6dd6dd6dd6dd 6dd 6dd 6dd 6dd6Zd„Zd„ZRS(sq AttributeTypeDescription = "(" whsp numericoid whsp ; AttributeType identifier [ "NAME" qdescrs ] ; name used in AttributeType [ "DESC" qdstring ] ; description [ "OBSOLETE" whsp ] [ "SUP" woid ] ; derived from this other ; AttributeType [ "EQUALITY" woid ; Matching Rule name [ "ORDERING" woid ; Matching Rule name [ "SUBSTR" woid ] ; Matching Rule name [ "SYNTAX" whsp noidlen whsp ] ; see section 4.3 [ "SINGLE-VALUE" whsp ] ; default multi-valued [ "COLLECTIVE" whsp ] ; default not collective [ "NO-USER-MODIFICATION" whsp ]; default user modifiable [ "USAGE" whsp AttributeUsage ]; default userApplications whsp ")" AttributeUsage = "userApplications" / "directoryOperation" / "distributedOperation" / ; DSA-shared "dSAOperation" ; DSA-specific, value depends on server tattributeTypesR)RR*R+tEQUALITYtORDERINGtSUBSTRtSYNTAXs SINGLE-VALUEt COLLECTIVEsNO-USER-MODIFICATIONR:tUSAGEc Cs |d|_|dd|_|ddj|_|d|_|dd|_|dd|_|dd|_y|d d}Wn%tj od|_ d|_ n×X|djod|_ d|_ n³y$|d di d ƒ\|_ }Wnxt j ol|d d|_ d|_ x`|D]@}|i d ƒo*|id ƒot|d d !ƒ|_ q$q$WnXt|d ƒ|_ |ddj|_|ddj|_|ddj|_yt|dd|_Wntj o ‚nXti|dddƒ|_dS(NR)RiR*R+R@RARBRCt{t}iiÿÿÿÿs SINGLE-VALUERDsNO-USER-MODIFICATIONRE(R3R R&R2R7tequalitytorderingtsubstrt IndexErrortsyntaxt syntax_lentsplitt ValueErrort startswithtendswithtlongt single_valuet collectivet no_user_modtAttributeUsagetusagetKeyErrortget(RR R RLRMti((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRÌsD      $  # cCsæt|iƒg}|i|id|iddƒƒ|i|id|iddƒƒ|i|id|iddƒƒ|ihdd 6d d6|iƒ|i|id |i ƒƒ|i|id |i ƒƒ|i|id |i ƒƒ|i|id|i ƒƒ|i djo%|id|i |i d jƒn|ihdd 6dd6|iƒ|ihdd 6dd6|iƒ|ihdd 6dd6|iƒ|ihdd 6dd6dd6dd6|iƒddi|ƒS(NR)RiRR+Rs $ Ris OBSOLETER@RARBRCs{%d}s SINGLE-VALUEs COLLECTIVEs NO-USER-MODIFICATIONs USAGE directoryOperations USAGE distributedOperationis USAGE dSAOperationis( %s )(RR R RR3RR R7R2RHRIRJRLRMR&RSRTRURWR(RR!((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR"ús,""""%""" (N(N((N(N(N(N(R:(R#R$R%R8R&RRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR>£s"  .t LDAPSyntaxcBs:eZdZdZhdd6dd6Zd„Zd„ZRS( sa SyntaxDescription = "(" whsp numericoid whsp [ "DESC" qdstring ] whsp ")" t ldapSyntaxesRsX-NOT-HUMAN-READABLEcCs?|dd|_ti|iƒp|dddj|_dS(NRisX-NOT-HUMAN-READABLEtTRUE(R t NOT_HUMAN_READABLE_LDAP_SYNTAXESthas_keyR tnot_human_readable(RR R ((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR!scCsgt|iƒg}|i|id|iddƒƒ|ihdd6dd6|iƒddi|ƒS(NRRiRis X-NOT-HUMAN-READABLE 'TRUE's( %s )(RR R RR R`R(RR!((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR")s "N(N(N(R#R$R%R8R&RRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR[s  t MatchingRulecBsHeZdZdZhdd6d d6d d6d d6Zd„Zd„ZRS( sË MatchingRuleDescription = "(" whsp numericoid whsp ; MatchingRule identifier [ "NAME" qdescrs ] [ "DESC" qdstring ] [ "OBSOLETE" whsp ] "SYNTAX" numericoid whsp ")" t matchingRulesR)RR*RCcCsF|d|_|dd|_|ddj|_|dd|_dS(NR)RiR*RC(R3R R&R2RL(RR R ((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRDs  cCs¥t|iƒg}|i|id|iddƒƒ|i|id|iddƒƒ|ihdd6dd6|iƒ|i|id|iƒƒd di |ƒS( NR)RiRRis OBSOLETERCs( %s )( RR R RR3RR R2RLR(RR!((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR"Os """(N(N(N(R#R$R%R8R&RRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRa2s   tMatchingRuleUsecBsHeZdZdZhdd6d d6d d6d d6Zd„Zd„ZRS( sþ MatchingRuleUseDescription = "(" whsp numericoid [ space "NAME" space qdescrs ] [ space "DESC" space qdstring ] [ space "OBSOLETE" ] space "APPLIES" space oids ; AttributeType identifiers extensions whsp ")" tmatchingRuleUseR)RR*tAPPLIEScCsB|d|_|dd|_|ddj|_|d|_dS(NR)RiR*Re(R3R R&R2tapplies(RR R ((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRks   cCs«t|iƒg}|i|id|iddƒƒ|i|id|iddƒƒ|ihdd6dd6|iƒ|i|id|id d ƒƒd di |ƒS( NR)RiRRis OBSOLETEReRs $ s( %s )( RR R RR3RR R2RfR(RR!((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR"vs """"(N(N((R#R$R%R8R&RRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRcXs   tDITContentRulecBs]eZdZdZhd d6d d6d d6dd6dd6dd6dd6Zd „Zd „ZRS(sï DITContentRuleDescription = LPAREN WSP numericoid ; object identifer [ SP "NAME" SP qdescrs ] ; short names [ SP "DESC" SP qdstring ] ; description [ SP "OBSOLETE" ] ; not active [ SP "AUX" SP oids ] ; auxiliary object classes [ SP "MUST" SP oids ] ; attribute types [ SP "MAY" SP oids ] ; attribute types [ SP "NOT" SP oids ] ; attribute types extensions WSP RPAREN ; extensions tdITContentRulesR)RR*tAUXR/R0tNOTcCsi|d|_|dd|_|ddj|_|d|_|d|_|d|_|d|_dS( NR)RiR*RiR/R0Rj(R3R R&R2tauxR4R5tnots(RR R ((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR—s     cCst|iƒg}|i|id|iddƒƒ|i|id|iddƒƒ|ihdd6dd6|iƒ|i|id|id d ƒƒ|i|id |i d d ƒƒ|i|id |i d d ƒƒ|i|id |i d d ƒƒddi |ƒS(NR)RiRRis OBSOLETERiRs $ R/R0Rjs( %s )( RR R RR3RR R2RkR4R5RlR(RR!((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR"¨s"""""""(N(N(((((R#R$R%R8R&RRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRgs   tDITStructureRulecBsaeZdZdZhd d6d d6d d6dd6dd6Zd„Zd„Zd „Zd „Z RS(sy DITStructureRuleDescription = LPAREN WSP ruleid ; rule identifier [ SP "NAME" SP qdescrs ] ; short names [ SP "DESC" SP qdstring ] ; description [ SP "OBSOLETE" ] ; not active SP "FORM" SP oid ; NameForm [ SP "SUP" ruleids ] ; superior rules extensions WSP RPAREN ; extensions tdITStructureRulesR)RR*tFORMR+cCs ||_dS(N(truleid(RR((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRÉscCs|iS(N(Rp(R((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRÌscCsS|d|_|dd|_|ddj|_|dd|_|d|_dS(NR)RiR*RoR+(R3R R&R2tformR7(RR R ((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRÏs   cCsÍt|iƒg}|i|id|iddƒƒ|i|id|iddƒƒ|ihdd6dd6|iƒ|i|id|iddƒƒ|i|id |i d d ƒƒd di |ƒS( NR)RiRRis OBSOLETERoR+Rs $ s( %s )( RRpR RR3RR R2RqR7R(RR!((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR"Üs"""""(N(N(N(( R#R$R%R8R&RRRRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRm´s     tNameFormcBsVeZdZdZhd d6d d6d d6d d6dd6dd6Zd„Zd „ZRS(sµ NameFormDescription = LPAREN WSP numericoid ; object identifer [ SP "NAME" SP qdescrs ] ; short names [ SP "DESC" SP qdstring ] ; description [ SP "OBSOLETE" ] ; not active SP "OC" SP oid ; structural object class SP "MUST" SP oids ; attribute types [ SP "MAY" SP oids ] ; attribute types extensions WSP RPAREN ; extensions t nameFormsR)RR*tOCR/R0cCs`|d|_|dd|_|ddj|_|dd|_|d|_|d|_dS(NR)RiR*RtR/R0(R3R R&R2tocR4R5(RR R ((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRüs   cCsét|iƒg}|i|id|iddƒƒ|i|id|iddƒƒ|ihdd6dd6|iƒ|i|id|iƒƒ|i|id |i d d ƒƒ|i|id |i d d ƒƒd di |ƒS(NR)RiRRis OBSOLETERtR/Rs $ R0s( %s )( RR R RR3RR R2RuR4R5R(RR!((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR" s"""""(N(N(N(((R#R$R%R8R&RRR"(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyRræs   tEntrycBs€eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z dd d „ZRS(s‘ Schema-aware implementation of an LDAP entry class. Mainly it holds the attributes in a string-keyed dictionary with the OID as key. cCsHh|_h|_||_||_tii|hƒ|i|ƒdS(N(t_keytuple2attrtypet_attrtype2keytuplet_stdntUserDictR tupdate(RtschemaRztentry((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyR s     cCs}y|i|SWngtj o[|iitii|ƒ}|iƒidƒ}||dtlowerRNttuple(Rt nameoroidR R tt((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyt_at2key&s   cCs)x"|iƒD]}||||scCs-|i|ƒ}||i|<||i|R[RaRcRgRmRrRv(((s8/usr/lib64/python2.6/site-packages/ldap/schema/models.pyts8  7A  q&'520