+
    4Ssiº  ã                   óH   € R t Rt^ RIt^ RIt ! R R]P                  4      tR# )z3Convenience functions for using the idmap database.ÚrestructuredTextNc                   óf   a a€ ] tR t^t oRt^t^t^tRV 3R lltRV 3R llt	R t
R	R ltRtVtV ;t# )
ÚIDmapDBzThe IDmap database.c           
     óf   <€ W n         Vf   VP                  R4      p\        SV `  WVWEVVR7       R# )zROpens the IDMap Database.

For parameter meanings see the super class (samba.Ldb)
Nz	idmap.ldb)ÚurlÚlpÚmodules_dirÚsession_infoÚcredentialsÚflagsÚoptions)r   Úprivate_pathÚsuperÚ__init__)	Úselfr   r   r   r	   r
   r   r   Ú	__class__s	   &&&&&&&&€Ú-/usr/lib/python3/dist-packages/samba/idmap.pyr   ÚIDmapDB.__init__#   s<   ø€ ð ŒØŠ;Ø—/‘/ +Ó.ˆCä‰Ñ˜S°[Ø&2ÐSXØ!(ð 	ö 	*ó    c                ó^   <€ \         SV `  V P                  P                  V4      VVR 7       R# ))r   r   r   N)r   Úconnectr   r   )r   r   r   r   r   s   &&&&€r   r   ÚIDmapDB.connect1   s*   ø€ Ü‰‰˜DŸG™G×0Ñ0°Ó5¸UØ 'ð 	ö 	)r   c                óô  € V P                  RR\        P                  R7      pV^ ,          P                  R4      p\        P                  pVf)   V^ ,          P                  R4      p\        P
                  p\        \        V4      4      ^,           p\        P                  ! 4       p\        P                  ! V R4      Vn
        \        P                  ! \        V4      VR4      VR&   V P                  V4       V# )zƒIncrement xidNumber, if not present it create and assign it to the lowerBound

:return xid can that be used for SID/unixid mapping
zdistinguishedName=CN=CONFIGÚ )Ú
expressionÚbaseÚscopeÚ	xidNumberÚ
lowerBoundz	CN=CONFIG)ÚsearchÚldbÚSCOPE_SUBTREEÚgetÚFLAG_MOD_REPLACEÚFLAG_MOD_ADDÚintÚstrÚMessageÚDnÚdnÚMessageElementÚmodify)r   ÚresÚidÚflagÚnewidÚmsgs   &     r   Úincrement_xidÚIDmapDB.increment_xid5   sÁ   € ð
 �k‰kÐ%BÈÜ #× 1Ñ 1ð ó 3ˆà��V�Z‰Z˜Ó$ˆÜ×#Ñ#ˆØŠ:Ø�Q•—‘˜LÓ)ˆBÜ×#Ñ#ˆDÜ”C˜“G“˜qÕ ˆÜ�kŠk‹mˆÜ—’˜˜kÓ*ˆŒÜ×-Ò-¬c°%«j¸$ÀÓLˆˆKÑØ�‰�CÔØˆ	r   c                ó6  € Vf   V P                  4       pRpW P                  8X  d   RpM(W P                  8X  d   RpMW P                  8X  d   RpMR# RV: RV: RV: R	V: R
V: R2pV P	                  \        V P                  V4      4      ^,          4       R# )z·Setup a mapping between a sam name and a unix name.

:param sid: SID of the NT-side of the mapping.
:param unixname: Unix id to map to, if none supplied the next one will be selected
Nr   ÚID_TYPE_UIDÚID_TYPE_GIDÚID_TYPE_BOTHz
dn: CN=z
xidNumber: z
objectSid: z
objectClass: sidMap
type: z
cn: z

)r1   ÚTYPE_UIDÚTYPE_GIDÚ	TYPE_BOTHÚaddÚnextÚ
parse_ldif)r   ÚsidÚtypeÚunixidÚtype_stringÚmods   &&&&  r   Úsetup_name_mappingÚIDmapDB.setup_name_mappingH   s‚   € ð Š>Ø×'Ñ'Ó)ˆFØˆØ—=‘=Ô Ø'‰KØ—]‘]Ô"Ø'‰KØ—^‘^Ô#Ø(‰Káøó ‹F“C›£cð+ˆð 	�‰”�d—o‘o cÓ*Ó+¨AÕ.Ö/r   )r   )NNNNNé    N)NrD   N)N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r7   r8   r9   r   r   r1   rB   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r      s2   ù‡ € Ùð €HØ€HØ€I÷*÷)ò÷&0ô 0r   r   )rI   Ú__docformat__r    ÚsambaÚLdbr   © r   r   Ú<module>rR      s'   ðñ& :à"€ã 
Û ôH0ˆe�i‰iö H0r   