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: //lib/python3/dist-packages/samba/netcmd/__pycache__/spn.cpython-310.pyc
o

��a��@s�ddlmZddlZddlmZddlmZddlm	Z	ddl
mZmZm
Z
mZGdd�de�ZGdd	�d	e�ZGd
d�de�ZGdd
�d
e
�ZdS)�N)�SamDB)�system_session)�_get_user_realm_domain)�Command�CommandError�SuperCommand�Optionc@sTeZdZdZdZejejejd�Z	e
dddeddd	�gZd
gZ
				ddd
�ZdS)�cmd_spn_listzList spns of a given user.z%prog <user> [options]��	sambaopts�credopts�versionopts�-H�--URL�%LDB URL for database or target server�URL�H��help�type�metavar�dest�userNcCs�|��}|�|�}t|t�||d�}t|�\}	}
}|j�|	d�|jdt�	|	�tj
dgd�}t|�dkrh|d�d�}
|
dur[|j�d|dj
�|
D]
}|j�d|�qNdS|j�d	|dj
�dStd
|��)N��session_info�credentials�lp�
�samaccountname=%s�servicePrincipalName��
expression�scope�attrsrz1User %s has the following servicePrincipalName: 
z	 %s
z$User %s has no servicePrincipalName
�User %s not found)�get_loadparm�get_credentialsrrr�outf�write�search�ldb�
binary_encode�
SCOPE_SUBTREE�len�get�dnr)�selfrrrrr
r�creds�sam�cleaneduser�realm�domain�res�spns�e�r9�2/usr/lib/python3/dist-packages/samba/netcmd/spn.py�run1s4
�����
�zcmd_spn_list.run�NNNN��__name__�
__module__�__qualname__�__doc__�synopsis�options�SambaOptions�CredentialsOptions�VersionOptions�takes_optiongroupsr�str�
takes_options�
takes_argsr;r9r9r9r:r	 s"����r	c@sVeZdZdZdZejejejd�Z	e
dddeddd	�gZd
dgZ
				dd
d�ZdS)�cmd_spn_addzCreate a new spn.z%prog <name> <user> [options]r
rrrrrr�namerNcCsH|��}|�|�}t|t�||d�}	|	jdt�|�tjd�}
t|
�dkr+t	d|��t
|�\}}}
|	jdt�|�tjdgd�}
t|
�dkr�|
djt��}|
d�
d�}g}d	}tj}|dury|D]}t|�|krnd
}|�t|��qdtj}|�|�|
dj|_t�||d�|d<|s�|	�|�dSt	d||f��t	d|��)
Nr�servicePrincipalName=%s)r!r"rz5Service principal %s already affected to another userrrr FTz+Service principal %s already affected to %sr$)r%r&rrr)r*r+r,r-rrr/�Messager.�FLAG_MOD_ADDrH�append�FLAG_MOD_REPLACE�MessageElement�modify)r0rLrrrrr
rr1r2r6r3r4r5�msgr7�tab�found�flagr8r9r9r:r;_sT
����

��zcmd_spn_add.runr<r=r9r9r9r:rKOs"����rKc@sReZdZdZdZejejejd�Z	e
dddeddd	�gZd
dgZ
		dd
d�ZdS)�cmd_spn_deletez
Delete a spn.z%prog <name> [user] [options]r
rrrrrrrLzuser?NcCsf|��}|�|�}t|t�||d�}	|	jdt�|�tjddgd�}
t|
�dkr�d}|durSt	|�\}}
}|
D]}t
|d���|krE|}q7|durRtd||f��n"t|
�dkrqd	}|
D]}d
|t
|j
�f}q]td||f��|
d}t��}|�d�}g}|dur�|D]}t
|�|kr�|�t
|��q�tj}|j
|_
t�||d�|d<|	�|�dStd|��)
NrrMr�samAccountNamer rz"Unable to find user %s with spn %s��z%s
%szdMore than one user has the spn %s and no specific user was specified, list of users with this spn:%sz!Service principal %s not affected)r%r&rrr)r*r+r,r-rrH�lowerrr/rNr.rPrQrRrS)r0rLrrrrr
rr1r2r6�resultr3r4r5�elem�listUser�rrTr7rUr8rWr9r9r:r;�s\
������
��zcmd_spn_delete.run)NNNNNr=r9r9r9r:rX�s����rXc@s2eZdZdZiZe�ed<e�ed<e�ed<dS)�cmd_spnz(Service Principal Name (SPN) management.�add�list�deleteN)r>r?r@rA�subcommandsrKr	rXr9r9r9r:ra�s

ra)�samba.getopt�getoptrCr*�samba.samdbr�
samba.authr�samba.netcmd.commonr�samba.netcmdrrrrr	rKrXrar9r9r9r:�<module>s/=@