HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/samba/__pycache__/idmap.cpython-310.pyc
o

�/a��@s.dZdZddlZddlZGdd�dej�ZdS)z3Convenience functions for using the idmap database.�restructuredText�NcsReZdZdZdZdZdZ		d�fdd�	Zd�fd	d
�	Zdd�Z	dd
d�Z
�ZS)�IDmapDBzThe IDmap database.���Nrc	s:||_|dur|�d�}tt|�j|||||||d�dS)zbOpens 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�superr�__init__)�selfrrr	r
rrr
��	__class__��-/usr/lib/python3/dist-packages/samba/idmap.pyr#s

�zIDmapDB.__init__cs"tt|�j|j�|�||d�dS)N)rrr
)rr�connectrr)rrrr
rrrr1s
�zIDmapDB.connectcCs�|jddtjd�}|d�d�}tj}|dur!|d�d�}tj}tt|��d}t��}t�	|d	�|_
t�t|�|d�|d<|�|�|S)
z�Increment xidNumber, if not present it create and assign it to the lowerBound

        :return xid can that be used for SID/unixid mapping
        zdistinguishedName=CN=CONFIG�)�
expression�base�scoper�	xidNumberN�
lowerBoundrz	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�msgrrr�
increment_xid5s�
zIDmapDB.increment_xidcCsv|dur|��}d}||jkrd}n||jkrd}n
||jkr"d}ndSd|||||f}|�t|�|��d�dS)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_BOTHzL
dn: CN=%s
xidNumber: %s
objectSid: %s
objectClass: sidMap
type: %s
cn: %s

r)r/�TYPE_UID�TYPE_GID�	TYPE_BOTH�add�next�
parse_ldif)r�sid�type�unixid�type_string�modrrr�setup_name_mappingHs


�	zIDmapDB.setup_name_mapping)NNNNNrN)NrN)N)�__name__�
__module__�__qualname__�__doc__r3r4r5rrr/r>�
__classcell__rrrrrs�r)rB�
__docformat__r�samba�Ldbrrrrr�<module>s