
    Id"                     ~    d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
 dZdZdZd	 Zd
 Zd Z G d dee      Zy)    N)
gp_xml_extgp_file_applier)NamedTemporaryFile)	get_bytes)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                    t         j                  j                  | dt        |       t        fz        }t        d|       5 }t        |j                  d      5 }|j                  t               |j                  d       d d d        t        j                  |j                  d       t        j                  |j                  |       d d d        |S # 1 sw Y   SxY w# 1 sw Y   |S xY w)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 	! 	
		!&&-() 	! 	!) s%    C'C>ACC	CC&c           
         t        j                  |       D cg c]!  }t        |v st        j                  d|      # }}t        |D cg c]  }|st        |j                  d            ! c}t        gz         dz   S c c}w c c}w )N(\d+)   )	r   listdirr   rematchmaxintgroup
DENY_BOUND	directoryr   configsms       r   r   r   4   si    .0jj.CVyTU~rxx!$VGV6AAAGGAJ6
|CDQFF W6s   A?A?	BBc           
      
   t        j                  |       D cg c]!  }t        |vst        j                  d|      # }}t        |D cg c]  }|st        |j                  d            ! c}dgz         dz   S c c}w c c}w )Nr    r!   r   )r   r"   r   r#   r$   r%   r&   r'   r)   s       r   select_next_confr.   <   sj    .0jj.CZyXYGYrxx!$ZGZ6AAAGGAJ6s:;A== [6s   A;A;	B B c                   "    e Zd Zd Z	 ddZd Zy)vgp_access_extc                      y)NzVGP/Unix Settings/Host Access )selfs    r   __str__zvgp_access_ext.__str__A   s    .    c           
         |D ]J  \  }}t        |       |v s|t        |          j                         D ]  \  }}| j                  |||        L |D ]  }|j                  sd}	t        j
                  j                  |j                  |	      }
| j                  |
      }d}t        j
                  j                  |j                  |      }
| j                  |
      }g }g }| j                  j                  d      }|r|j                  d      }|j                  d      }|j                  d      }|D ]b  }|j                  d      }|j                  d      j                  }|j                  d	      j                  }|j                  d
|||d       d t        |      dkD  r/t        j                   d       |j                  t#        |             |r|j                  d      }|j                  d      }|j                  d      D ]  }|j                  d      }|j                  d      j                  }|j                  d	      j                  }|j                  d|||d       t              dkD  srt        j$                  d|d   z          t        |      dk(  rWt'        |      }t        j
                  j                  |d|z        }|j                  |       dj                  |      | j)                  |j*                        }| j-                        }fd}| j/                  |j*                  ||||||       | j1                  |j*                  |g        y )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                    t         j                  j                  |       st        j                  | d       t	        d|       5 }t        |j                  d      5 }|j                  t               |j                         d d d        t        j                  |j                  d       t        j                  |j                  |       d d d        |S # 1 sw Y   SxY w# 1 sw Y   |S xY w)Nr   Fr	   r   )r   r   isdirmkdirr   r   r   r   r   r   r   )r   access_filepolicy_filesr   r   access_contentss        r   applier_funcz9vgp_access_ext.process_group_policy.<locals>.applier_func~   s    77==0/+5fE 7!!&&#. 5!GGENGGO45 /		!&&+67 ('5 57 ('s%   C 'CAC C	C  C*)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	attributerH   gpoallowr   
allow_confdeny	deny_confentrieswinbind_seppolicyr;   allow_listelementsr<   r=   r   r>   conf_idrG   
value_hashrJ   rI   s                              @r   process_group_policyz#vgp_access_ext.process_group_policyD   s%   . 	@ND(4yH$/7D	/B/H/H/J @+I|LLy,?@	@
 $ @	7C  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 	D#.#3#3J#?'}}V499!)x!8!=!=9D9=(? @ 12Q6HH &57>r{&C D	D w<1$*62 ggll6?W3LM##K0"&))G"4 !33CHH=	 "55oF
	( 

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

3889+
6A@	7r5   c                    i }|j                   rbd}t        j                  j                  |j                   |      }| j	                  |      }d}t        j                  j                  |j                   |      }| j	                  |      }g }| j
                  j                  d      }	|r|j                  d      }
|
j                  d      }|j                  d      }|D ]  }|j                  d      }|j                  d      j                  }|j                  d	      j                  }t        |       |j                         vrg |t        |       <   |t        |          j                  d
||	|d        t        |      dkD  r|t        |          j                  d       |r|j                  d      }
|
j                  d      }|j                  d      D ]  }|j                  d      }|j                  d      j                  }|j                  d	      j                  }t        |       |j                         vrg |t        |       <   |t        |          j                  d||	|d        |S )Nr7   r8   r9   r:   r;   r<   r=   r   r>   r?   r@   r   r   rA   )rO   r   r   r   rP   rQ   rR   rS   rT   rU   rL   keysrV   rW   )r3   rc   outputrd   r   re   rf   rg   rh   ri   rj   r;   rk   r<   r=   r   r>   s                    r   rsopzvgp_access_ext.rsop   s$   OE77<< 1 159DD)JMD77<< 1 148D

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