
    b*                     l    d dl Z d dlmZ d dlZd dlmZ d dlmZmZ d dl	m
c mZ
  G d de          ZdS )    N)SambaToolCmdTest)LoadParm)
stage_fileunstage_filec                   <     e Zd ZdZdZd Zd Z fdZ fdZ xZ	S )GpoCmdTestCasez%Tests for samba-tool time subcommandstestgpoc                    t                      }|                    t          j        d                    |                    dd          }t          j                            ||                    d                                          d| j        dd          }t          j
        d          }t          j        |d	          }t          j        |d
          }d|_        t          j        |d          }d|_        t          j        |d          }d|_        t          j        |d          }	d|	_        t          j        |d          }
t          j        |
d          }t          j        |d          }d|_        t          j        |d          }d|                    d                                          z  |_        t          j        |d          }t          j        |d          }d|_        t          j        |d          }|                    d                                          |_        t          j        |d          }d|_        t          j        |
d          }d|_        t          j        |
d          }t          j        |d          }d|_        t          j        |d          }d|                    d                                          z  |_        t          j        |d          }t          j        |d          }d |_        t          j        |d          }|                    d                                          |_        t          j        |d          }d!|_        t          |t          j        |d"                    }|                     |d#|z             d$|j        z  }d%|j        z  }|                     d&d'| j        d(d)t          j        d*         z  d+t          j        d,         d-t          j        d.                   \  }}}|                     ||d/           |                     ||d/           t%          |           d S )0NSERVERCONFFILEpathsysvolrealmPolicieszMachine/VGP/VTLA/VASz$HostAccessControl/Allow/manifest.xml	vgppolicypolicysettingversion1namezHost Access Controldescriptionz0Represents host access control data (pam_access)
apply_modemergedatalistelementtypeUSERentryz
goodguy@%sadobjectgoodguydomainuser	groupattrsamAccountNameGROUPz%s\goodguysgoodguysgroupzutf-8zCould not create the target %sz+:%s\goodguy:ALLz+:%s\goodguys:ALLgpomanageaccesslist-H	ldap://%sSERVER-UUSERNAME%PASSWORDThe test entry was not found!)r   loadosenvirongetr   joinlowergpo_guidetreeElement
SubElementtextr   tostring
assertTruerunsublevelcmdassertInr   )selflp
local_pathvgp_xmlstager   pvr   r   r   r   r   etyper   r   r   r!   retuentrygentryresultouterrs                          A/usr/lib/python3/dist-packages/samba/tests/samba_tool/gpo_exts.pytest_vgp_access_listz#GpoCmdTestCase.test_vgp_access_list!   s   ZZ

+,---VVFH--
',,z266'??+@+@+B+BJ#}.DEG G k**(@@mY77v66)	&}mDDM%m\BB
!
v66&t];; f55
 g66!BFF7OO$9$9$;$;;
#K<<&11	!(H55ffWoo++-- 622
$T;77	)	&t];; f55
 g66#bffWoo&;&;&=&==
#K<<&11	!(H55ffWoo++-- 622
%."@"@AA=GHHH$v{2%3!00 9C151<13H1E2F 2F 35*Z2H2H2H13J1G1G2IJ Jc 	fc#BCCCfc#BCCC 	W    c                 h   t                      }|                    t          j        d                    |                     dd| j        d| j        |                    d                                          ddt          j        d         z  d	t          j        d
         dt          j        d         	  	        \  }}}| 	                    |||d           |                     dd| j        d| j
        |                    d                                          ddt          j        d         z  d	t          j        d
         dt          j        d         	  	        \  }}}| 	                    |||d           d|                    d                                          d| j        d}d|                    d                                          d| j
        d}|                     dd| j        ddt          j        d         z  d	t          j        d
         dt          j        d                   \  }}}|                     ||d           |                     ||d           |                     dd| j        d| j        |                    d                                          ddt          j        d         z  d	t          j        d
         dt          j        d         	  	        \  }}}| 	                    |||d           |                     dd| j        d| j
        |                    d                                          ddt          j        d         z  d	t          j        d
         dt          j        d         	  	        \  }}}| 	                    |||d           |                     dd| j        ddt          j        d         z  d	t          j        d
         dt          j        d                   \  }}}|                     ||d           |                     ||d           d S )Nr   r&   )r(   r)   addallowr   r+   r,   r-   r.   r/   r0   r1   zAccess add faileddenyz+:\z:ALLz-:r'   r2   )r(   r)   removezAccess remove failedzThe test entry was still found!)r   r3   r4   r5   r@   r9   	test_userr6   r8   assertCmdSuccess
test_grouprA   assertNotIn)rB   rC   rL   rM   rN   allow_entry
deny_entrys          rO   test_vgp_access_addz"GpoCmdTestCase.test_vgp_access_adda   sb   ZZ

+,---!00 9B1518$.131F1F1H1H15{13H1E8F 8F 35*Z2H2H2H13J1G1G2I	J 	Jc 	fc30CDDD!00 9B1517131F1F1H1H15{13H1E8F 8F 35*Z2H2H2H13J1G1G2I	J 	Jc 	fc30CDDDD(*w(=(=(?(?(?(?P')vvg'<'<'>'>'>'>P
!00 9C151<13H1E2F 2F 35*Z2H2H2H13J1G1G2IJ Jc 	k3(GHHHj#'FGGG!00 9E1518$.131F1F1H1H15{13H1E8F 8F 35*Z2H2H2H13J1G1G2I	J 	Jc 	fc30FGGG!00 9E1517131F1F1H1H15{13H1E8F 8F 35*Z2H2H2H13J1G1G2I	J 	Jc 	fc30FGGG!00 9C151<13H1E2F 2F 35*Z2H2H2H13J1G1G2IJ Jc 	c+LMMMS*KLLLLLrQ   c                    t          t          |                                            |                     dd| j        ddt
          j        d         z  dt
          j        d         dt
          j        d	         d
| j                  \  }}}|                     |||d           t          j
        t
          j                            | j        d                     	 d|                    d          d                             d          d         z  | _        n(# t          $ r |                     d|z             Y nw xY wd| _        |                     dd| j        d          \  }}}|                     |||d           d| _        |                     dd| j                  \  }}}|                     |||d           dS )z#set up a temporary GPO to work withr&   creater+   r,   r-   r.   r/   r0   r1   z--tmpdirz!Ensuring gpo created successfullypolicyz{%s}{   }r   z!Failed to find GUID in output: %stestuserr    rS   z--random-passwordzUser creation failed	testgroupr%   zGroup creation failedN)superr   setUp	runsubcmdgpo_namer4   r5   tempdirrY   shutilrmtreer   r7   splitr9   
IndexErrorfailrX   rZ   rB   rL   rM   rN   	__class__s       rO   rh   zGpoCmdTestCase.setUp   s   nd##))+++!^^E8T],0+
8@T2T2T:<*Z:P:P:PRTR\]gRhRh,i,6F Fc 	fc30STTTbgll4<::;;;	A"SYYs^^A%6%<%<S%A%A!%DDDMM 	A 	A 	AII9C?@@@@@	A $!^^FE4>,?A Acfc30FGGG%!^^GUDOLLcfc30GHHHHHs   <D "D>=D>c                    |                      dd| j        ddt          j        d         z  dt          j        d         dt          j        d	                   \  }}}|                     |||d
           |                      dd| j                  \  }}}|                     |||d           |                      dd| j                  \  }}}|                     |||d           t          t          |           	                                 dS )z%remove the temporary GPO to work withr&   delr+   r,   r-   r.   r/   r0   r1   z!Ensuring gpo deleted successfullyr    deletezUser delete failedr%   zGroup delete failedN)
ri   r9   r4   r5   rY   rX   rZ   rg   r   tearDownrq   s       rO   rv   zGpoCmdTestCase.tearDown   s@   !^^E5$-{]_]ghp]qOqOq  BD  BL  MW  BX  BX  BX  Z\  Zd  eo  Zp  Zp  tq  r  rcfc30STTT!^^FHdnMMcfc30DEEE!^^GXtOOcfc30EFFFnd##,,.....rQ   )
__name__
__module____qualname____doc__rj   rP   r^   rh   rv   __classcell__)rr   s   @rO   r   r      s        //H> > >@IM IM IMVI I I I I,/ / / / / / / / /rQ   r   )r4   samba.tests.samba_tool.baser   rl   samba.paramr   samba.tests.gpor   r   xml.etree.ElementTreer:   ElementTreer    rQ   rO   <module>r      s   * 
			 8 8 8 8 8 8              4 4 4 4 4 4 4 4 % % % % % % % % %n/ n/ n/ n/ n/% n/ n/ n/ n/ n/rQ   