
    gz"                     r    S SK r S SKrS SKJrJr  S SKJr  S SKJr  Sr	Sr
SrS rS	 rS
 r " S S\\5      rg)    N)
gp_xml_extgp_file_applier)NamedTemporaryFile)loga
  
### autogenerated by samba
#
# This file is generated by the vgp_access_ext Group Policy
# Client Side Extension. To modify the contents of this file,
# modify the appropriate Group Policy objects which apply
# to this machine. DO NOT MODIFY THIS FILE DIRECTLY.
#

l    0 z_gp_DENY_ALL.confc                    [         R                  R                  U S[        U 5      [        4-  5      n[        SU S9 n[        UR                  S5       nUR                  [        5        UR                  S5        S S S 5        [         R                  " UR                  S5        [         R                  " UR                  U5        S S S 5        U$ ! , (       d  f       NZ= f! , (       d  f       U$ = f)Nz%d%sFdeletedirw	-:ALL:ALL  )ospathjoinselect_next_deny	DENY_FILEr   opennamewriteintrochmodrename)accessdeny_filenamefr   s       9/usr/lib/python3/dist-packages/samba/gp/vgp_access_ext.py	deny_filer   (   s    GGLL"26":I!FFHM	5f	5!&&#!GGENGGK   	
		!&&-( 
6   
6	5 s$   C 'C;A
C 
C	C  
C/c           
      2   [         R                  " U 5       Vs/ s H&  n[        U;   d  M  [        R                  " SU5      PM(     nn[        U Vs/ s H%  o3(       d  M  [        UR                  S5      5      PM'     sn[        /-   5      S-   $ s  snf s  snf )N(\d+)   )	r   listdirr   rematchmaxintgroup
DENY_BOUND	directoryr   configsms       r   r   r   3   su    .0jj.CV.CyTU~$rxx!$.CGV6AAAGGAJ6
|CDQFF W6s   BB
BBc           
      *   [         R                  " U 5       Vs/ s H&  n[        U;  d  M  [        R                  " SU5      PM(     nn[        U Vs/ s H%  o3(       d  M  [        UR                  S5      5      PM'     snS/-   5      S-   $ s  snf s  snf )Nr   r    r   )r   r!   r   r"   r#   r$   r%   r&   r(   s       r   select_next_confr-   ;   sv    .0jj.CZ.CyXYGY$rxx!$.CGZ6AAAGGAJ6s:;A== [6s   BB
BBc                   ,    \ rS rSrS r SS jrS rSrg)vgp_access_ext?   c                     g)NzVGP/Unix Settings/Host Access )selfs    r   __str__vgp_access_ext.__str__@   s    .    c           
      &  ^ U HM  u  pE[        U 5      U;   d  M  U[        U 5         R                  5        H  u  pgU R                  XFU5        M     MO     U GH6  nUR                  (       d  M  Sn	[        R
                  R                  UR                  U	5      n
U R                  U
5      nSn[        R
                  R                  UR                  U5      n
U R                  U
5      n/ n/ nU R                  R                  S5      nU(       a  UR                  S5      nUR                  S5      nUR                  S5      nU Hf  nUR                  S5      nUR                  S5      R                  nUR                  S	5      R                  nUR                  S
U< U< U< S35        Mh     [        U5      S:  a0  [        R                   " S5        UR                  [#        U5      5        U(       a  UR                  S5      nUR                  S5      nUR                  S5       H  nUR                  S5      nUR                  S5      R                  nUR                  S	5      R                  nUR                  SU< U< U< S35        [        W5      S:  d  Mw  [        R$                  " SUS   -  5        M     [        U5      S:X  a  GMx  ['        U5      n[        R
                  R                  USU-  5      nUR                  U5        SR                  U5      mU R)                  UR*                  5      nU R-                  T5      nU4S jnU R/                  UR*                  UUUUUU5        U R1                  UR*                  U/S9  GM9     g )N9MACHINE/VGP/VTLA/VAS/HostAccessControl/Allow/manifest.xml8MACHINE/VGP/VTLA/VAS/HostAccessControl/Deny/manifest.xmlwinbind separatorpolicysettingdatalistelementadobjectr   domain+::ALLr   z=Adding an implicit deny ALL because an allow entry is present-:z1Deny entry '%s' is meaningless with allow presentz%010d_gp.conf
c                   > [         R                  R                  U 5      (       d  [         R                  " U S5        [	        SU S9 n[        UR                  S5       nUR                  [        5        UR                  T5        S S S 5        [         R                  " UR                  S5        [         R                  " UR                  U5        S S S 5        U$ ! , (       d  f       NZ= f! , (       d  f       U$ = f)Nr   Fr   r   )r   r   isdirmkdirr   r   r   r   r   r   r   )r   access_filepolicy_filesr   r   access_contentss        r   applier_func9vgp_access_ext.process_group_policy.<locals>.applier_func}   s    77==00/+5fE!!&&#.!GGENGGO4 / /		!&&+6 F (' /. FE ('s%   C*'CA
C*
C'	#C**
C9)keep)stritemsunapplyfile_sys_pathr   r   r   parselpgetfindfindalltextappendlenr   infor   warnr-   generate_attributer   generate_value_hashapplyclean)r3   deleted_gpo_listchanged_gpo_listr   guidsettings	attributerI   gpoallowr   
allow_confdeny	deny_confentrieswinbind_seppolicyr<   allow_listelementsr=   r>   r   r?   conf_idrH   
value_hashrK   rJ   s                              @r   process_group_policy#vgp_access_ext.process_group_policyC   s   .ND4yH$/7D	/B/H/H/J+ILL,? 0K /
 $C   Sww||C$5$5u=!ZZ-
Qww||C$5$5t< JJt,	!"ggkk*=>'___=F!;;v.D)-m)D&'9#.#3#3J#?'}}V499!)x!8!=!=9D9=(? @	 (: -.2 "5 6$++If,=>&^^O<F!;;v.D'+||M'B#.#3#3J#?'}}V499!)x!8!=!=9D9=(? @ 12Q6HH &57>r{&C D (C w<1$*62 ggll6?W3LM##K0"&))G"4 !33CHH=	 "55oF
	( 

388Y
L!;> 

3889+
6A $r6   c                 &   0 nUR                   (       Ga|  Sn[        R                  R                  UR                   U5      nU R	                  U5      nSn[        R                  R                  UR                   U5      nU R	                  U5      n/ nU R
                  R                  S5      n	U(       Ga  UR                  S5      n
U
R                  S5      nUR                  S5      nU H  nUR                  S5      nUR                  S5      R                  nUR                  S	5      R                  n[        U 5      UR                  5       ;  a  / U[        U 5      '   U[        U 5         R                  S
U< U	< U< S35        M     [        U5      S:  a  U[        U 5         R                  S5        U(       a  UR                  S5      n
U
R                  S5      nUR                  S5       H  nUR                  S5      nUR                  S5      R                  nUR                  S	5      R                  n[        U 5      UR                  5       ;  a  / U[        U 5      '   U[        U 5         R                  SU< U	< U< S35        M     U$ )Nr8   r9   r:   r;   r<   r=   r>   r   r?   r@   rA   r   r   rB   )rQ   r   r   r   rR   rS   rT   rU   rV   rW   rN   keysrX   rY   )r3   re   outputrf   r   rg   rh   ri   rj   rk   rl   r<   rm   r=   r>   r   r?   s                    r   rsopvgp_access_ext.rsop   s   OE77<< 1 159DD)JMD77<< 1 148D

4(IG''++&9:K#9{{6*%)\\-%@"#5K*//
;H#==055D%]]8499F4y5,.s4y)3t9%,,t?J?E.G H $6 )*Q.3t9%,,[9"8{{6*#'<<#>K*//
;H#==055D%]]8499F4y5,.s4y)3t9%,,t?J?E.G H $? r6   r2   N)z/etc/security/access.d)__name__
__module____qualname____firstlineno__r4   rp   ru   __static_attributes__r2   r6   r   r/   r/   ?   s    / %=G7R&r6   r/   )r   r"   samba.gp.gpclassr   r   tempfiler   samba.gp.util.loggingr   r   r'   r   r   r   r-   r/   r2   r6   r   <module>r      sF   "  8 ' %		 
	
	G>sZ sr6   