+
    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[&2SX!( 	 	*    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*    DGG005U ' 	 	)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# )zIncrement 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    
 kk%B # 1 1  3VZZ$##:QL)B##DCGq kkm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# )zSetup 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 FCc+ 	dooc*+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0eii H0r   