
    gA                     Z    S SK r S SKrS SKJrJr  S SKJr  S SKJr  S r	 " S S\\5      r
g)    N)
gp_pol_extgp_misc_applier)NamedTemporaryFile)logc                 h    [        U [        R                  5      =(       a    [        U 5      [        :g  $ )N)
isinstancenumbersNumbertypebool)xs    :/usr/lib/python3/dist-packages/samba/gp/gp_smb_conf_ext.py	is_numberr      s%    a( 7d?    c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)gp_smb_conf_ext   c                    U R                   R                  U5      nU R                  U5      nSU;  d  U R                  U5      US   :X  an  U R                   R	                  X R                  US   U5      5        U R                  U R                   5        [        R                  " SU[        US   5      05        U R                  X5        g )Nnew_valold_valsmb.conf [global] was changed)lpgetparse_valuelptype_to_stringsetregtype_to_lptypestore_lp_smb_confr   infostrcache_remove_attribute)selfguid	attributevalcurrentdatas         r   unapplygp_smb_conf_ext.unapply   s    ''++i($ D %%g.$y/AGGKK	#9#9$y/:A$C D""477+HH4 3tI#79; 	##D4r   c                    U R                   R                  U5      nU R                  X45      nU R                   R                  X#5        U R	                  U R                   5        [
        R                  " SU[        U5      05        U R                  U R                  U5      U R                  U5      S9nU R                  XU5        g )Nr   )r   r   )r   r   r   r   r   r   r   r    generate_valuer   cache_add_attribute)r"   r#   r$   r%   r   r'   s         r   applygp_smb_conf_ext.apply+   s    ''++i($$S2I#tww'0IC2JK""4+@+@+I+/+@+@+E # G  $7r   c                    SnU HF  u  pEUR                  S5      nUc  M  UR                  5        H  u  pxU R                  XGU5        M     MH     U H  n	U	R                  (       d  M  Sn
[        R
                  R                  U	R                  U5      nU R                  U5      nU(       d  M\  / nUR                   Hq  nUR                  R                  U
5      (       d  M%  UR                  UR                  5        U R                  U	R                  UR                  UR                  5        Ms     U R!                  U	R                  US9  M     g )NMACHINE/Registry.polsmb.conf Software\Policies\Samba\smb_conf)keep)r   itemsr(   file_sys_pathospathjoinparseentrieskeyname
startswithappend	valuenamer-   namer'   clean)r"   deleted_gpo_listchanged_gpo_listpol_filer#   settingssmb_confkeyvaluegposection_namer7   pol_confattrses                  r   process_group_policy$gp_smb_conf_ext.process_group_policy7   s   ).ND||J/H&nn.
T. /	 / $C   Dww||C$5$5x@::d+!))A99//== LL-JJsxxaff=	 * 

388%
0 $r   c                 <   [        U5      [        :X  a  UR                  5       n[        U5      (       a  [        U5      (       a  [	        U5      nO.[        U5      (       a  [        U5      [
        :X  a  [        U5      n[        U5      [
        :X  a  U(       a  SOSnU$ )Nyesno)r   bytesdecoder   r    r   )r"   r%   r   s      r   r   !gp_smb_conf_ext.regtype_to_lptypeQ   sl    9**,CS>>i00c(Cs^^W 5s)C9%DC
r   c                    [        S[        R                  R                  UR                  5      S9 nUR                  SUR                  5        [        R                  " UR                  5      R                  n[        R                  " UR                  U5        [        R                  " UR                  UR                  5        S S S 5        g ! , (       d  f       g = f)NF)deletedir)r   r6   r7   dirname
configfiledumpr?   statst_modechmodrename)r"   r   fmodes       r   r   !gp_smb_conf_ext.store_lp_smb_conf\   s    u$&GGOOBMM$BDGHGGE166"772==)11DHHQVVT"IIaffbmm,D D Ds   BC
Cc                     [        U5      (       a  [        U5      nU$ [        U5      [        :X  a  U(       a  SnU$ SnU$ [        U5      [        :X  a  SR                  U5      nU$ )NrP   rQ    )r   r    r   r   listr8   )r"   r%   s     r   r    gp_smb_conf_ext.lptype_to_stringd   se    S>>c(C
 
	 #Y$%C 
 %)C 
 #Y$((3-C
r   c                     g)Nr1    )r"   s    r   __str__gp_smb_conf_ext.__str__m   s    r   c                    0 nUR                   (       a  SnSn[        R                  R                  UR                   U5      nU R	                  U5      nU(       d  U$ UR
                   HZ  nUR                  R                  U5      (       d  M%  SUR                  5       ;  a  0 US'   UR                  US   UR                  '   M\     U$ )Nr2   r0   r1   )r5   r6   r7   r8   r9   r:   r;   r<   keysr'   r>   )r"   rH   outputrI   rC   r7   rJ   rL   s           r   rsopgp_smb_conf_ext.rsopp   s    @L-H77<< 1 18<Dzz$'H%%yy++L99V[[]2)+F:&23&&z"1;;/ & r   rg   N)__name__
__module____qualname____firstlineno__r(   r-   rM   r   r   r   rh   rm   __static_attributes__rg   r   r   r   r      s*    5 
814	-r   r   )r6   r	   samba.gp.gpclassr   r   tempfiler   samba.gp.util.loggingr   r   r   rg   r   r   <module>rw      s(   "  8 ' %ej/ er   