ó
    cÛ–ió  ã                   ó¬   • S SK Jr  S SKrS SKJr  S SKJr  S SKJ	r	  S SK
JrJrJrJr   " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      rg)é    N)ÚSamDB)Úsystem_session)Ú_get_user_realm_domain)ÚCommandÚCommandErrorÚSuperCommandÚOptionc            	       ó”   • \ rS rSrSrSr\R                  \R                  \R                  S.r
\" SSS\SS	S
9/rS/r    SS jrSrg)Úcmd_spn_listé    zList 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ÚuserNc                 ó–  • UR                  5       nUR                  U5      n[        U[        5       XvS9n[	        X5      u  pšnU R
                  R                  U	S-   5        UR                  S[        R                  " U	5      -  [        R                  S/S9n[        U5      S:”  a–  US   R                  S5      nUbS  U R
                  R                  SUS   R                  -  5        U H!  nU R
                  R                  SU-  5        M#     g U R
                  R                  S	US   R                  -  5        g [        S
U-  5      e)N©Úsession_infoÚcredentialsÚlpÚ
úsamaccountname=%sÚservicePrincipalName©Ú
expressionÚscopeÚattrsr   z1User %s has the following servicePrincipalName: 
z	 %s
z$User %s has no servicePrincipalName
úUser %s not found)Úget_loadparmÚget_credentialsr   r   r   ÚoutfÚwriteÚsearchÚldbÚbinary_encodeÚSCOPE_SUBTREEÚlenÚgetÚdnr   )Úselfr   r   r   r   r   r    ÚcredsÚsamÚcleaneduserÚrealmÚdomainÚresÚspnsÚes                  Ú2/usr/lib/python3/dist-packages/samba/netcmd/spn.pyÚrunÚcmd_spn_list.run1   s3  € ð ×#Ñ#Ó%ˆØ×(Ñ(¨Ó,ˆÜ�A¤NÓ$4Ø %ñ.ˆô (>¸dÓ'HÑ$ˆ˜VØ�	‰	�‰˜ dÑ*Ô+Ø�j‰jØ*¬S×->Ò->¸{Ó-KÑKÜ×#Ñ#Ð,BÐ+Cð ð Eˆô ˆs‹8�a‹<Ø�q‘6—:‘:Ð4Ó5ˆDØÑØ—	‘	—‘ØHØ˜‘F—I‘Iñôó �AØ—I‘I—O‘O I°¡MÖ2ò ð —	‘	—‘Ð GØ # A¡§	¡	ñ!*õ +ô Ð2°TÑ9Ó:Ð:ó    © ©NNNN©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚsynopsisÚoptionsÚSambaOptionsÚCredentialsOptionsÚVersionOptionsÚtakes_optiongroupsr	   ÚstrÚtakes_optionsÚ
takes_argsr>   Ú__static_attributes__rA   r@   r=   r   r       sh   † Ù$à'€Hð ×)Ñ)Ø×.Ñ.Ø×-Ñ-ñÐñ 	ˆt�WÐ#JØ ¨Sñ	2ð€Mð
 �€JàØØØ÷;r@   r   c            	       ó–   • \ rS rSrSrSr\R                  \R                  \R                  S.r
\" SSS\SS	S
9/rSS/r    SS jrSrg)Úcmd_spn_addéO   zCreate a new spn.z%prog <name> <user> [options]r   r   r   r   r   r   r   Únamer   Nc                 óÐ  • UR                  5       nUR                  U5      n[        U[        5       X‡S9n	U	R	                  S[
        R                  " U5      -  [
        R                  S9n
[        U
5      S:w  a  [        SU-  5      e[        X)5      u  p¼nU	R	                  S[
        R                  " U5      -  [
        R                  S/S9n
[        U
5      S:”  aÿ  U
S   R                    [
        R                  " 5       nU
S   R                  S5      n/ nS	n[
        R                  nUbD  U H.  n[        U5      U:X  a  S
nUR!                  [        U5      5        M0     [
        R"                  nUR!                  U5        U
S   R                  Ul        [
        R$                  " UUS5      US'   U(       d  U	R'                  U5        g [        SU< SU< 35      e[        SU-  5      e)Nr   úservicePrincipalName=%s)r%   r&   r   z5Service principal %s already affected to another userr"   r#   r$   FTzService principal z already affected to r(   )r)   r*   r   r   r-   r.   r/   r0   r1   r   r   r3   ÚMessager2   ÚFLAG_MOD_ADDrO   ÚappendÚFLAG_MOD_REPLACEÚMessageElementÚmodify)r4   rV   r   r   r   r   r   r    r5   r6   r:   r7   r8   r9   Úmsgr;   ÚtabÚfoundÚflagr<   s                       r=   r>   Úcmd_spn_add.run_   sÒ  € ð ×#Ñ#Ó%ˆØ×(Ñ(¨Ó,ˆÜ�A¤NÓ$4Ø %ñ.ˆà�j‰jØ0´3×3DÒ3DÀTÓ3JÑJÜ×#Ñ#ð ð %ˆô ˆs‹8�q‹=Üð  ;Ø=Añ Bó Cð Cô (>¸dÓ'HÑ$ˆ˜VØ�j‰jØ*¬S×->Ò->¸{Ó-KÑKÜ×#Ñ#Ð,BÐ+Cð ð Eˆô ˆs‹8�a‹<Ø�‰F�IŠIÜ—+’+“-ˆCØ�q‘6—:‘:Ð4Ó5ˆDØˆCØˆEÜ×#Ñ#ˆDØÑÛ�AÜ˜1“v “~Ø $˜Ø—J‘Jœs 1›vÖ&ñ ô ×+Ñ+�Ø�J‰J�tÔØ˜‘V—Y‘YˆCŒFÜ*-×*<Ò*<¸SÀ$Ø=Só+UˆCÐ&Ñ'æØ—
‘
˜3•å"Û8<ºdð$Dó Eð Eô Ð2°TÑ9Ó:Ð:r@   rA   rB   rC   rA   r@   r=   rT   rT   O   sk   † Ùà.€Hð ×)Ñ)Ø×.Ñ.Ø×-Ñ-ñÐñ 	ˆt�WÐ#JØ ¨Sñ	2ð€Mð ˜&Ð!€Jà $ØØØ÷*;r@   rT   c            	       ó’   • \ rS rSrSrSr\R                  \R                  \R                  S.r
\" SSS\SS	S
9/rSS/r  SS jrSrg)Úcmd_spn_deleteéŒ   zDelete a spn.z%prog <name> [user] [options]r   r   r   r   r   r   r   rV   zuser?Nc                 óº  • UR                  5       nUR                  U5      n[        U[        5       X‡S9n	U	R	                  S[
        R                  " U5      -  [
        R                  SS/S9n
[        U
5      S:”  GaR  S nUbR  [        U5      u  pÍnU
 H'  n[        US   5      R                  5       U:X  d  M%  UnM)     Uc  [        SU< SU< 35      eON[        U
5      S	:w  a:  S
nU
 H  nU< S[        UR                  5      < 3nM!     [        SU< SU< 35      eU
S   n[
        R                  " 5       nUR                  S5      n/ nUbD  U H.  n[        U5      U:w  d  M  UR!                  [        U5      5        M0     [
        R"                  nUR                  Ul        [
        R$                  " UWS5      US'   U	R'                  U5        g [        SU-  5      e)Nr   rX   r#   ÚsamAccountNamer$   r   zUnable to find user z
 with spn é   Ú r!   zMore than one user has the spn zA and no specific user was specified, list of users with this spn:z!Service principal %s not affected)r)   r*   r   r   r-   r.   r/   r0   r1   r   rO   Úlowerr   r3   rY   r2   r[   r\   r]   r^   )r4   rV   r   r   r   r   r   r    r5   r6   r:   Úresultr7   r8   r9   ÚelemÚlistUserÚrr_   r;   r`   r<   rb   s                          r=   r>   Úcmd_spn_delete.run�   sÓ  € à×#Ñ#Ó%ˆØ×(Ñ(¨Ó,ˆÜ�A¤NÓ$4Ø %ñ.ˆà�j‰jØ0´3×3DÒ3DÀTÓ3JÑJÜ×#Ñ#Ø)Ð+;Ð<ð ð >ˆô ˆs‹8�aŒ<ØˆFØÑÜ/EÀdÓ/KÑ,� VÛ�DÜ˜4Ð 0Ñ1Ó2×8Ñ8Ó:¸kÕIØ!%šñ  ð ‘>Ý&Û48º$ð(@ó Að Að "ô �s“8˜q“=Ø!�HÛ ˜Û/7¼¸Q¿T¹T½Ð#Cšñ !å&ã>BÂHð(Nó Oð Oð ! ™V�Fä—+’+“-ˆCØ—:‘:Ð4Ó5ˆDØˆCØÑÛ�AÜ˜1“v •~ØŸ
™
¤3 q£6Ö*ñ ô ×+Ñ+�Ø—Y‘YˆCŒFÜ*-×*<Ò*<¸SÀ$Ø=Só+UˆCÐ&Ñ'à�J‰J�s�OäÐBÀTÑIÓJÐJr@   rA   )NNNNNrC   rA   r@   r=   re   re   Œ   sf   † Ùà.€Hð ×)Ñ)Ø×.Ñ.Ø×-Ñ-ñÐñ 	ˆt�WÐ#JØ ¨Sñ	2ð€Mð
 ˜'Ð"€JàDHØ÷,Kr@   re   c                   óX   • \ rS rSrSr0 r\" 5       \S'   \" 5       \S'   \" 5       \S'   Sr	g)Úcmd_spnéÌ   z(Service Principal Name (SPN) management.ÚaddÚlistÚdeleterA   N)
rD   rE   rF   rG   rH   ÚsubcommandsrT   r   re   rR   rA   r@   r=   rr   rr   Ì   s/   † Ù2à€KÙ$›€K�ÑÙ&›.€K�ÑÙ*Ó,€K�Ôr@   rr   )Úsamba.getoptÚgetoptrJ   r.   Úsamba.samdbr   Ú
samba.authr   Úsamba.netcmd.commonr   Úsamba.netcmdr   r   r   r	   r   rT   re   rr   rA   r@   r=   Ú<module>r~      sU   ðõ& Û 
Ý Ý %Ý 6÷ó ô,;�7ô ,;ô^:;�'ô :;ôz=K�Wô =Kô@-ˆlõ -r@   