
    Id                         d dl mZ d dlmZ d dlmZmZmZm	Z	 d dl
mZmZ d dlmZ  G d de      Z G d d	e      Z G d
 de      Z G d de	      Zy)    N)Dn)CommandCommandErrorOptionSuperCommand)AuthenticationSiloUser)
ModelErrorc            	           e Zd ZdZdZej                  ej                  dZ e	ddde
dd	       e	d
ddde
       e	dddde
      gZ	 	 ddZy)cmd_domain_auth_silo_member_addz'Add a member to an authentication silo.%prog -H <URL> [options]	sambaoptscredopts-H--URL&LDB URL for database or target server.URLldap_urlhelptypemetavardest--name'Name of authentication silo (required).namestorer   r   actionr   --memberz/Member to add to the silo (DN or account name).memberNc                    |st        d      |st        d      | j                  |||      }	 t        j                  ||      }|t        d| d      	 dt        ||      i}		 t        j                  |fi |	}
|
t        d| d	      |j                  |
_	        	 |j                  ||
       |
j                  |       | j                  j                  d|
j                   d
| d       y # t        $ r}t        |      d }~ww xY w# t        $ r d|i}	Y w xY w# t        $ r}t        |      d }~ww xY w# t        $ r}t        |      d }~ww xY w)NArgument --name is required.Argument --member is required.cnAuthentication silo  not found.dnusernameUser '' not found.z' added to the  silo.
)r   ldb_connectr   getr
   r   
ValueErrorr	   r*   assigned_silo
add_membersaveoutfwriter   selfr   r   r   r   r"   ldbsiloe
user_queryusers              F/usr/lib/python3/dist-packages/samba/netcmd/domain/auth/silo_member.pyrunz#cmd_domain_auth_silo_member_add.run3   so    =>>?@@xH=	"%))#$7D
 <!5dV;GHH	.30J	"88C.:.D
 <x|<== "WW	"OOC&IIcN 			&?4&IJA  	"q/!	"  	.$f-J	.
  	"q/!	"  	"q/!	"sY   C0 D 'D  #D; 0	D	9DD	DD	D8(D33D8;	EEENNNNN__name__
__module____qualname____doc__synopsisoptionsSambaOptionsCredentialsOptionstakes_optiongroupsr   strtakes_optionsr?        r>   r   r      s}    1)H )).. 	tW#KZ	9x=7	6 	zEW3	8	M ;?",KrN   r   c            	           e Zd ZdZdZej                  ej                  dZ e	ddde
dd	       e	d
ddde
       e	ddddd      gZ	 	 ddZy) cmd_domain_auth_silo_member_listz,List all members in the authentication silo.r   r   r   r   r   r   r   r   r   r   r   r   r   z--jsonzOutput results in JSON format.output_formatstore_constjson)r   r   r    constNc                 <   |st        d      | j                  |||      }	 t        j                  ||      }|t        d| d      	 |j
                  D 	cg c]  }	t        j                  ||	       }
}	|dk(  r.| j                  |
D cg c]  }|j                          c}       y |
D ]*  }| j                  j                  |j                   d       , y # t        $ r}t        |      d }~ww xY wc c}	w # t        $ r}t        |      d }~ww xY wc c}w )Nr$   r&   r(   r)   )r*   rS   
)r   r/   r   r0   r
   membersr	   
print_jsonas_dictr5   r6   r*   )r8   r   r   r   r   rQ   r9   r:   r;   r*   rW   r"   s               r>   r?   z$cmd_domain_auth_silo_member_list.runv   s    =>>xH=	"%))#$7D
 <!5dV;GHH	"6:llCtxx+CGC
 F"OOGD&V^^-DE! 2		699+R 012#  	"q/!	" D 	"q/!	"
 EsG   C C= C87C= D	C5%C00C58C= =	DDDr@   rA   rM   rN   r>   rP   rP   b   s}    6)H )).. 	tW#KZ	9x=7	6 	x>#M	IM ;?%)2rN   rP   c            	           e Zd ZdZdZej                  ej                  dZ e	ddde
dd	       e	d
ddde
       e	dddde
      gZ	 	 ddZy)"cmd_domain_auth_silo_member_removez,Remove a member from an authentication silo.r   r   r   r   r   r   r   r   r   r   r   r   r   r!   z4Member to remove from the silo (DN or account name).r"   Nc                    |st        d      |st        d      | j                  |||      }	 t        j                  ||      }|t        d| d      	 dt        ||      i}		 t        j                  |fi |	}
|
t        d| d	      d |
_        	 |j                  ||
       |
j                  |       | j                  j                  d|
j                   d
| d       y # t        $ r}t        |      d }~ww xY w# t        $ r d|i}	Y w xY w# t        $ r}t        |      d }~ww xY w# t        $ r}t        |      d }~ww xY w)Nr$   r%   r&   r(   r)   r*   r+   r,   r-   z' removed from the r.   )r   r/   r   r0   r
   r   r1   r	   r2   remove_memberr4   r5   r6   r   r7   s              r>   r?   z&cmd_domain_auth_silo_member_remove.run   sn    =>>?@@xH=	"%))#$7D
 <!5dV;GHH	.30J	"88C.:.D
 <x|<== "	"sD)IIcN 			&+>tfHMNA  	"q/!	"  	.$f-J	.
  	"q/!	"  	"q/!	"sY   C& D 'D #D1 &	C?/C::C?DD	D.D))D.1	E
:EE
r@   rA   rM   rN   r>   r[   r[      s}    6)H )).. 	tW#KZ	9x=7	6 	zJW3	8	M ;?",OrN   r[   c                   :    e Zd ZdZ e        e        e       dZy)cmd_domain_auth_silo_memberz)Manage members in an authentication silo.)addlistremoveN)rB   rC   rD   rE   r   rP   r[   subcommandsrM   rN   r>   r_   r_      s     3 /00246KrN   r_   )samba.getoptgetoptrG   r9   r   samba.netcmdr   r   r   r   samba.netcmd.domain.modelsr   r	   %samba.netcmd.domain.models.exceptionsr
   r   rP   r[   r_   rM   rN   r>   <module>ri      sT   .   D D ? <AKg AKH02w 02fAO AOH, rN   