a
    W×au	  ã                   @   sH   d dl Z d dlZd dlmZ d dlmZ d dlmZ G dd„ deƒZdS )é    N)Ú
gp_pol_ext)Ú	b64encode)ÚNamedTemporaryFilec                   @   s   e Zd Zdd„ Zddd„ZdS )Úgp_scripts_extc                 C   s   dS )NzUnix Settings/Daily Scripts© )Úselfr   r   ú6/usr/lib/python3/dist-packages/samba/gp_scripts_ext.pyÚ__str__   s    zgp_scripts_ext.__str__ú/etc/cron.dailyc              
   C   sp  |D ]h}| j  |d ¡ t| ƒ|d v rb|d t| ƒ  ¡ D ]$\}}t |¡ | j  t| ƒ|¡ q<| j  ¡  q|D ]ø}|jrrd}| j  |j	¡ d}tj
 |j|¡}	|  |	¡}
|
s²qr|
jD ]°}|j|kr¸|j ¡ r¸t|j ¡ ƒ ¡ }| j  t| ƒ|¡}|s^tdd|dD}| d|j ¡ t |j	d	¡ | j  t| ƒ||j	¡ W d   ƒ n1 sT0    Y  | j  ¡  q¸qrd S )
Nr   é   z3Software\Policies\Samba\Unix Settings\Daily ScriptszMACHINE/Registry.polzw+F)ÚmodeÚdeleteÚdirz#!/bin/sh
%siÀ  )Zgp_dbZset_guidÚstrÚitemsÚosÚunlinkr   ZcommitZfile_sys_pathÚnameÚpathÚjoinÚparseÚentriesZkeynameÚdataÚstripr   ÚencodeÚdecodeZretriever   ÚwriteÚchmodZstore)r   Zdeleted_gpo_listZchanged_gpo_listÚcdirZgpoZ	attributeZscriptZsection_nameZpol_filer   Zpol_confÚeZold_valÚfr   r   r   Úprocess_group_policy   s4    


6z#gp_scripts_ext.process_group_policyN)r
   )Ú__name__Ú
__module__Ú__qualname__r	   r!   r   r   r   r   r      s   r   )	r   ÚreZsamba.gpclassr   Úbase64r   Ztempfiler   r   r   r   r   r   Ú<module>   s   