
    b                     d    d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d Z	 G d de          Z
dS )    N)
gp_pol_ext)NamedTemporaryFile)logc                 f    t          | t          j                  ot          |           t          k    S )N)
isinstancenumbersNumbertypebool)xs    :/usr/lib/python3/dist-packages/samba/gp/gp_smb_conf_ext.py	is_numberr      s(    a(( 77d?    c                   &    e Zd Zd Zd Zd Zd ZdS )gp_smb_conf_extc                    d}|D ]\  }}| j                             |           |                    d          }|7|                                D ]O\  }}|                     ||           | j                             d|           | j                                          P|D ]}	|	j        rd}
| j                             |	j                   t          j
                            |	j        |          }|                     |          }|sg|j        D ]V}|j                            |
          s|                     |j        |j                   | j                                          Wd S )NMACHINE/Registry.polsmb.conf Software\Policies\Samba\smb_conf)gp_dbset_guidgetitemsset_smb_confdeletecommitfile_sys_pathnameospathjoinparseentrieskeyname
startswith	valuenamedata)selfdeleted_gpo_listchanged_gpo_listpol_fileguidsettingssmb_confkeyvaluegposection_namer    pol_confes                 r   process_group_policyz$gp_smb_conf_ext.process_group_policy   s   ). 	$ 	$ND(J%%%||J//H&nn.. $ $
U!!#u---
!!*c222
!!####$
 $ 	( 	(C  (D
##CH---w||C$5x@@::d++ !) ( (A9//== ! %%ak16:::J%%''''	( 	(r   c                    | j                             |          }t          |          t          k    r|                                }t          |          rt          |          rt          |          }n6t          |          r't          |          t          k    rt          |          }t          |          t          k    r|rdnd}| j                             ||           t          dt          j                            | j         j                            5 }| j                             d|j                   t          j        | j         j                  j        }t          j        |j        |           t          j        |j        | j         j                   d d d            n# 1 swxY w Y   t)          j        d|t          |          i           t          |          rt          |          }nLt          |          t          k    r|rdnd}n-t          |          t,          k    rd                    |          }| j                            t          |           ||           d S )NyesnoF)r   dirzsmb.conf [global] was changed )lpr   r
   bytesdecoder   strr   setr   r   r    dirname
configfiledumpr   statst_modechmodrenamer   infolistr!   r   store)r(   	attributevalold_valfmodes         r   r   zgp_smb_conf_ext.set_smb_conf6   s@   '++i((99**,,CS>> 	i00 	c((CCs^^ 	W 5 5s))C99(%%DCIs###u$&GOODG4F$G$GI I I 	2LMGLL'''747-..6DHQVT"""Iafdg0111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	0IC2JKKKW 	('llGG']]d""&0eeDGG']]d""hhw''G
TIw77777s   BF**F.1F.c                     dS )Nr    )r(   s    r   __str__zgp_smb_conf_ext.__str__T   s    zr   c                 F   i }|j         rd}d}t          j                            |j         |          }|                     |          }|s|S |j        D ]M}|j                            |          sd|                                vri |d<   |j	        |d         |j
        <   N|S )Nr   r   r   )r   r   r    r!   r"   r#   r$   r%   keysr'   r&   )r(   r1   outputr2   r+   r    r3   r4   s           r   rsopzgp_smb_conf_ext.rsopW   s     	9@L-H7<< 18<<Dzz$''H % 9 9y++L99 V[[]]22)+F:&23&z"1;//r   N)__name__
__module____qualname__r5   r   rQ   rU   rP   r   r   r   r      sP        ( ( (68 8 8<      r   r   )r   rer   samba.gp.gpclassr   tempfiler   samba.gp.util.loggingr   r   r   rP   r   r   <module>r]      s   "             ' ' ' ' ' ' ' ' ' ' ' ' % % % % % %  L L L L Lj L L L L Lr   