
    b                     l    d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 dZ
d Z G d d	e          ZdS )
    N)
gp_xml_ext)blake2b)NamedTemporaryFile)	get_bytesa
  
### 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.
#

c                 ~    d t          j        |           D             }t          d |D             dgz             dz   S )Nc                 8    g | ]}t          j        d |          S )z(\d+))rematch).0fs     9/usr/lib/python3/dist-packages/samba/gp/vgp_access_ext.py
<listcomp>z$select_next_conf.<locals>.<listcomp>&   s$    DDDrx!$$DDD    c                 V    g | ]&}|t          |                    d                     'S )   )intgroup)r   ms     r   r   z$select_next_conf.<locals>.<listcomp>'   s-    666AA6AGGAJJ666r   r   r   )oslistdirmax)	directoryconfigss     r   select_next_confr   %   sH    DDbj.C.CDDDG66666s:;;A==r   c                   $    e Zd Zd Z	 ddZd ZdS )vgp_access_extc                     dS )NzVGP/Unix Settings/Host Access )selfs    r   __str__zvgp_access_ext.__str__*   s    ..r   /etc/security/access.dc           	      l	   |D ]\  }}| j                             |           t          |           |v r|t          |                                                    D ]`\  }}t          j                            |          rt	          j        |           | j                             t          |           |           a| j         	                                 |D ]}|j
        r| j                             |j                   d}	t          j                            |j
        |	          }
|                     |
          }d}t          j                            |j
        |          }
|                     |
          }g }|r|                    d          }|                    d          }|                    d          D ]g}|                    d          }|                    d          j        }|                    d          j        }|                    d	|d
|d           h|r|                    d          }|                    d          }|                    d          D ]g}|                    d          }|                    d          j        }|                    d          j        }|                    d|d
|d           ht%          |          dk    rt'          |          }t          j                            |d|z            }d                    |          }t)          t+          |                                                    }| j                             t          |           |          }|t          j                            |          st	          j        |d           t5          d|          5 }t7          |j        d          5 }|                    t:                     |                    |           d d d            n# 1 swxY w Y   t	          j        |j        d           t	          j        |j        |           d d d            n# 1 swxY w Y   | j                              t          |           ||           | j         	                                 d S )N9MACHINE/VGP/VTLA/VAS/HostAccessControl/Allow/manifest.xml8MACHINE/VGP/VTLA/VAS/HostAccessControl/Deny/manifest.xmlpolicysettingdatalistelementadobjectnamedomain+:\:ALL-:r   z%010d_gp.conf
i  F)deletedirw)!gp_dbset_guidstritemsr   pathexistsunlinkr0   commitfile_sys_pathr)   joinparsefindfindalltextappendlenr   r   r   	hexdigestretrieveisdirmkdirr   openwriteintrochmodrenamestore)r   deleted_gpo_listchanged_gpo_listaccessguidsettings	attributeaccess_filegpoallowr7   
allow_confdeny	deny_confentriespolicyr&   r'   r(   r)   r*   conf_idaccess_contentsold_valr   r2   s                             r   process_group_policyz#vgp_access_ext.process_group_policy-   s   . 	  	 ND(J%%%4yyH$$.6s4yy.A.G.G.I.I < <*I{w~~k22 /	+...J%%c$ii;;;;J# ,	$ ,	$C  +$
##CH---Sw||C$5u==!ZZ--
Qw||C$5t<< JJt,,	 H'___==F!;;v..D'+||M'B'B H H#.#3#3J#?#?'}}V449!)x!8!8!='FGGGG H&^^O<<F!;;v..D'+||M'B'B H H#.#3#3J#?#?'}}V449!)x!8!8!='FGGGGw<<1$$*622 gll6?W3LMM"&))G"4"4#Io$>$>??IIKK	*--c$iiCC&w}}V,, ,HVU+++'u&AAA 3Qafc** 1a0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 HQVU+++Iafk2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 
  TI{CCC
!!###Y,	$ ,	$s6   Q%0PQ%PQ%!P"7Q%%Q)	,Q)	c                    i }|j         r{| j                            |j                   d}t          j                            |j         |          }|                     |          }d}t          j                            |j         |          }|                     |          }g }|r|                    d          }	|	                    d          }
|
	                    d          D ]}|                    d          }|                    d          j
        }|                    d          j
        }t          |           |                                vrg |t          |           <   |t          |                                        d	|d
|d           |r|                    d          }	|	                    d          }
|
	                    d          D ]}|                    d          }|                    d          j
        }|                    d          j
        }t          |           |                                vrg |t          |           <   |t          |                                        d|d
|d           |S )Nr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   )r;   r3   r4   r)   r   r7   r<   r=   r>   r?   r@   r5   keysrA   )r   rT   outputrU   r7   rV   rW   rX   rY   rZ   r&   r'   r(   r)   r*   s                  r   rsopzvgp_access_ext.rsopf   sM    	NJ)))OE7<< 1599DD))JMD7<< 1488D

4((IG 	N#99{{6**#'<<#>#> N NK*//
;;H#==005D%]]8449F4yy55,.s4yy)3t99%,,,tttVVV-LMMMM 	N"88{{6**#'<<#>#> N NK*//
;;H#==005D%]]8449F4yy55,.s4yy)3t99%,,,tttVVV-LMMMMr   N)r!   )__name__
__module____qualname__r    r^   rb   r   r   r   r   r   )   sL        / / / %=7$ 7$ 7$ 7$r    r   r   )r   r	   samba.gp.gpclassr   hashlibr   tempfiler   samba.commonr   rI   r   r   r   r   r   <module>rj      s   "  ' ' ' ' ' '       ' ' ' ' ' ' " " " " " "		> > >\ \ \ \ \Z \ \ \ \ \r   