
    g                         S SK r S SKrS SKJrJr  S SKJrJrJrJ	r	  S SK
Jr  S SKJr  SrSr " S S	\\5      rS
 rS rS r " S S\\	5      rg)    N)PopenPIPE)
gp_pol_extdrop_privilegesgp_file_appliergp_misc_applier)NamedTemporaryFile)loga
  
### autogenerated by samba
#
# This file is generated by the gp_scripts_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.
#

z 
### autogenerated by samba ###
c                   .    \ rS rSrS rSS jrSS jrSrg)	gp_scripts_ext&   c                     g)NzUnix Settings/Scripts )selfs    9/usr/lib/python3/dist-packages/samba/gp/gp_scripts_ext.py__str__gp_scripts_ext.__str__'   s    &    Nc           
        ^^ U HM  u  pE[        U 5      U;   d  M  U[        U 5         R                  5        H  u  pgU R                  XFU5        M     MO     U GH  nUR                  (       d  M  Sn	SU	-  SSU	-  SSU	-  SSU	-  S	0mS
n
[        R
                  R                  UR                  U
5      nU R                  U5      nU(       d  Mu  0 nUR                   H  nUR                  TR                  5       ;   d  M#  UR                  R                  5       (       d  MD  UR                  U;  a  / XR                  '   XR                     R                  UR                  5        M     UU4S jnUR                  5        H7  u  nnUnU R                  " U6 nU R                  UR                   UUUUU5        M9     U R#                  UR                   UR                  5       S9  GM     g )N%Software\Policies\Samba\Unix Settings%s\Daily Scriptsz/etc/cron.daily%s\Monthly Scriptsz/etc/cron.monthly%s\Weekly Scriptsz/etc/cron.weekly%s\Hourly Scriptsz/etc/cron.hourlyzMACHINE/Registry.polc                 D  > / nT(       d  TU    OTnU Hv  n[        SSSUS9 nS[        -  nUSU-  -  nUR                  U5        [        R                  " UR
                  S5        UR                  UR
                  5        S S S 5        Mx     U$ ! , (       d  f       M  = f)Ngp_zw+F)prefixmodedeletedirz#!/bin/sh
%sz%s
i  )r	   introwriteoschmodnameappend)	keynameentriesretcron_dirdatafcontentscdirsectionss	          r   applier_func9gp_scripts_ext.process_group_policy.<locals>.applier_funcB   s    C8<x0$H '/u47<(LOP'6'>H$5HGGH-HHQVVU3JJqvv.L L !( JL Ls   AB
B	keep)stritemsunapplyfile_sys_pathr#   pathjoinparser(   r'   keysr+   stripr&   generate_value_hashapplyr%   clean)r   deleted_gpo_listchanged_gpo_listr.   guidsettings	attributescriptgporeg_keypol_filer8   pol_confpolicieser0   r'   r(   
value_hashr/   s      `               @r   process_group_policy#gp_scripts_ext.process_group_policy*   s   .ND4yH$)1#d))<)B)B)D%ILL&9 *E /
 $C   D07:=N2W<?R1G;>P1G;>PS 2ww||C$5$5x@::d+!))AyyHMMO399H424HYY/ +22166:	 *
 )1(8$GW !(I "&!9!97!CJJJsxxJ&1 )9 

388(--/
:U $r   c                    0 nSU-  nUR                   (       a  [        R                  R                  UR                   U5      nU R	                  U5      nU(       d  U$ UR
                   H  nUR                  R                  S5      S   nUR                  S5      (       d  M9  UR                  R                  5       (       d  MZ  XR                  5       ;  a  / X8'   X8   R                  UR                  5        M     U$ )Nz%s/Registry.pol\Scripts)r7   r#   r8   r9   r:   r(   r'   splitendswithr+   r<   r;   r&   )	r   rF   targetoutputrH   r8   rI   rK   keys	            r   rsopgp_scripts_ext.rsop\   s    $v-77<< 1 18<Dzz$'H%%iiood+B/<<	**qvv||~~++-/&(K&&qvv. & r   r   N)MACHINE)__name__
__module____qualname____firstlineno__r   rM   rX   __static_attributes__r   r   r   r   r   &   s    '0;dr   r   c                    [        SSSU /[        [        S9nUR                  5       u  p#UR                  S:w  a  [        R
                  " SU-  5        [        R                  " [        < S[        < 3UR                  5       [        R                  5      n[        U5      S:X  a#  US   R                  5       R                  S	5      nO/ n[        R                  " S[        < S
[        < S3UR                  5       [        R                  5      n[        U5      S:X  a5  S	R                  US    Vs/ s H  ofR                  5       PM     sn5      nXu4$ UR                  5       nXu4$ s  snf )Ncrontabz-l-ustdoutstderrr   zFailed to read the crontab: %sz(.*)   
z.*)r   r   communicate
returncoder
   warningrefindallr!   enddecodeDOTALLlenr<   rS   r9   )usernamepouterrmr(   lotherss           r   fetch_crontabry   l   s   y$h/TJA}}HC||q4s:;


,cjjlBIIFA
1v{A$**,$$T*


uc2CJJL"))LA
1v{qt4t!GGIt45 ? ? 5s   0E&c                     [        SU SU/[        [        S9nUR                  5       u  p4UR                  S:w  a  [	        SU-  5      eg )Nrb   rc   rd   r   zFailed to install crontab: %s)r   r   ri   rj   RuntimeError)fnamerr   rs   _ru   s        r   install_crontabr~   }   sH    y%x0dKA]]_FA||q:S@AA r   c           
         [        5        n[        U5      S:  aJ  UR                  SR                  U[        SR                  U5      [
        /5      R                  5       5        OUR                  UR                  5       5        UR                  5         [        UR                  U 5        S S S 5        g ! , (       d  f       g = f)Nr   rh   )
r	   rq   r"   r9   r!   rn   encodeflushr~   r%   )rr   rx   r(   r,   s       r   install_user_crontabr      s    		w<!GGDIIvuIIg&- ..4fh8 GGFMMO$		) 
		s   BB33
Cc                   :   ^  \ rS rSrS rS rS rU 4S jrSrU =r	$ )gp_user_scripts_ext   c                     [        U R                  5      u  pEX5;   a'  UR                  U5        [        U R                  XE5        U R	                  X5        g rZ   )ry   rr   remover   cache_remove_attribute)r   rB   rD   entryrx   r(   s         r   r6   gp_user_scripts_ext.unapply   s@    '6NN5! @##D4r   c                     U R                  X5      n[        U R                  5      u  pVU(       a  X6;  a:  UR                  U5        [	        U R                  XV5        U R                  XU5        g g rZ   )cache_get_attribute_valuery   rr   r&   r   cache_add_attribute)r   rB   rD   r   old_valrx   r(   s          r   r>   gp_user_scripts_ext.apply   sY    00A'6%.NN5! @$$Te< /r   c           	         U HM  u  p4[        U 5      U;   d  M  U[        U 5         R                  5        H  u  pVU R                  X5U5        M     MO     U GHe  nUR                  (       d  M  SnSU-  SSU-  SSU-  SSU-  S	0n	S
n
[        R
                  R                  UR                  U
5      n[        SU R                  U5      nU(       d  M{  / nUR                   H  nUR                  U	R                  5       ;   d  M#  UR                  R                  5       (       d  MD  XR                     nUR                  < SU R                  UR                  5      < 3nUR                  U5        U< SUR                  < 3nU R!                  UR"                  XV5        M     U R%                  UR"                  US9  GMh     g )Nr   r   z@dailyr   z@monthlyr   z@weeklyr   z@hourlyzUSER/Registry.polroot: r2   )r4   r5   r6   r7   r#   r8   r9   r   r:   r(   r'   r;   r+   r<   generate_attributer&   r>   r%   r?   )r   r@   rA   rB   rC   rD   r   rF   rG   r/   rH   r8   rI   attrsrK   	cron_freqs                   r   rM   (gp_user_scripts_ext.process_group_policy   sr   .ND4yH$(0T(;(A(A(C$ILL%8 )D /
 $C   D07:X2W<z1G;i1G;iJ /ww||C$5$5x@*64::tD!))AyyHMMO3$,YY$7	/0yy/3/F/Fqvv/N%P	Y/+4aff =

388Y> * 

388%
0+ $r   c                     > [         TU ]  USS9$ )NUSER)rU   )superrX   )r   rF   	__class__s     r   rX   gp_user_scripts_ext.rsop   s    w|C|//r   r   )
r\   r]   r^   r_   r6   r>   rM   rX   r`   __classcell__)r   s   @r   r   r      s    5=1:0 0r   r   )r#   rl   
subprocessr   r   samba.gp.gpclassr   r   r   r   tempfiler	   samba.gp.util.loggingr
   r!   rn   r   ry   r~   r   r   r   r   r   <module>r      sZ   "  "  ' %		DZ DL"B*.0./ .0r   