
    g                     v    S SK Jr  S SKJr  S SKJr  S SKJrJ	r	J
r
  S SKJr  S SKJr  S SKJr   " S S	\5      rg)
    N)ldb)system_session)CommandCommandErrorOption)SamDB)security)
ndr_unpackc            	           \ rS rSrSrSr\" SSS\SSS	9\" S
S\SS9\" SSSS9/rS/r	\
R                  \
R                  \
R                  S.r   SS jrSrg)cmd_user_disable   zDisable a user.z.%prog (<username>|--filter <filter>) [options]z-Hz--URLz%LDB URL for database or target serverURLH)helptypemetavardestz--filterzLDAP filter to select usersearch_filter)r   r   r   z--remove-supplemental-groupsz!Remove user's supplemental groups
store_true)r   actionz	username?)	sambaoptscredoptsversionoptsNc                    Uc  Uc  [        S5      eUc  S[        R                  " U5      -  nUR                  5       nUR	                  USS9n	[        U[        5       XS9n
U
R                  5          U
R                  U
R                  5       U[        R                  S/SS/S	9nUS
   R                  S5      nUc  / nUS
   R                  SS
S9n[        [        R                  U5      n[%        U5      S:  a'  U
R!                  5         [        SU=(       d    U-  5      eU(       a.  U H(  n U
R'                  [)        U5      [)        U5      /SS9  M*      U
R+                  U5        U
R-                  5         g ! [         a(    U
R!                  5         [        SU=(       d    U-  5      e["         a2  nU
R!                  5         [        SU=(       d    U< SU< S35      eS nAff = f! ["         a(  nU
R!                  5         [        SU< SU< 35      eS nAff = f! ["         a1  nU
R!                  5         [        SU=(       d    U< SU< 35      eS nAff = f)Nz4Either the username or '--filter' must be specified!z((&(objectClass=user)(sAMAccountName=%s))T)fallback_machine)urlsession_infocredentialslpzextended_dn:1:1	objectSidmemberOf)base
expressionscopecontrolsattrsr   )idxzUnable to find user '%s'zFailed to find user 'z': ''   zFound more than one user '%s'F)add_members_operationz"Failed to remove user from group 'z': zFailed to disable user ')r   r   binary_encodeget_loadparmget_credentialsr   r   transaction_startsearch	domain_dnSCOPE_SUBTREEgetr
   r	   dom_sid
IndexErrortransaction_cancel	Exceptionlenadd_remove_group_membersstrdisable_accounttransaction_commit)selfusernamer   r   r   r   r   remove_supplemental_groupsr   credssamdbresuser_groupsuser_binary_siduser_sidmsg
user_groups                    ;/usr/lib/python3/dist-packages/samba/netcmd/user/disable.pyruncmd_user_disable.run8   s}     5UVV F!!(+-M ##%((d(C!.*:"'0 	!	@,,EOO$5*7%(%6%6):(;&1:%>	  @C
 a&**Z0K" !!fjj!j<O!("2"2ODH s8a<$$&>'8= : ; ; &)
G223z?47M?IN 3 P *	1!!-0
 	  "=  	;$$&9'8= : ; ; 	@$$&'8=8# ? @ @	@ ! G,,.&5?(F G GG  	1$$&)M)3 0 1 1	1sI   2A8E8 -$G'H 8:G$2-GG$'
H1#HH
I&,II )NNNNNNF)__name__
__module____qualname____firstlineno____doc__synopsisr   r9   takes_options
takes_argsoptionsSambaOptionsCredentialsOptionsVersionOptionstakes_optiongroupsrH   __static_attributes__rJ       rG   r   r      s    ?H 	tW#JQT3	(z0#	% 	-7"	$
M J ))..-- ;?48',:#rY   r   )samba.getoptgetoptrS   sambar   
samba.authr   samba.netcmdr   r   r   samba.samdbr   samba.dcerpcr	   	samba.ndrr
   r   rJ   rY   rG   <module>rb      s-   ,   % 6 6  !  S#w S#rY   