
    b2                     n    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_pol_ext)misc)
get_string)logc                    | j         t          j        k    r<t          | j                                      dd          }t          j        |          S | j         t          j        k    r| j        dv r| j        dk    S | j        S )N  )r      r
   )	typer   REG_MULTI_SZr   datareplacejsonloads	REG_DWORD)er   s     9/usr/lib/python3/dist-packages/samba/gp/gp_firefox_ext.pyparse_entry_datar      so    v"""!&!!))&"55z$	
4>	!	!af&6&6v{6M    c                 <   | d         }i }|D ]}|j                             |          sd|j        v r(|j                             |d                              d          }|r|                    d          }|}d}|d                                         rd                    |d d                   }	nB|j                                        r|j         }	n!d                    |j         |j        g          }	t          t          |                    D ]}
||
         dk    rd||
<   t          }|
t          |          dz
  k    r4|j                                        rt          }t          |j                  }|
t          |          dz
  k     r<||
dz                                            rt          }t          ||
dz                      }t          |          t          k    r<||
         |vr"|t          k    ri |||
         <   ng |||
         <   |||
                  }|	|vri ||	<   |||	                                         vrQ|t          k    r|                    i            n|                    g            t          |          dz
  ||	         |<   |||	         |                  }t          |          t          k    r$|                    t!          |                     t!          |          ||j        <   t!          |          ||j        <   d|iS )	Npoliciesz
**delvals.r	   \PDFjsPSFjsr
   )keyname
startswith	valuenamer   stripsplit	isnumericjoinrangelendictlistintr   keysappendr   )r   sectionentriesresult	index_mapr   sub_keyscurrentindexnameictypes               r   convert_pol_to_jsonr4       s	   j!FI 06 06y##G,, 	1;&&9$$Wb1177== *	6~~d++HGE|%%'' ;yy#2#//&&(( ;yyy!)Q[!9::3x==)) > >A;'))")HQKHa''AK,A,A,C,C' E,,Es8}}Q&&8AaC=+B+B+D+D& E1..E==D(({'11 D==35GHQK0035GHQK0%hqk2GG9,,*,	$IdO$8$8$:$::: D==#NN2....#NN2...14Wa	$.%ioe&<=GGG}}$$/223333'7':':$$"21"5"5F1;r   c                       e Zd ZdZdZej                            ed          Zej                            ed          Z	d Z
d Zd Z	 d
dZd	 ZdS )gp_firefox_extz/usr/lib64/firefox/distributionz/etc/firefox/policiespolicies.jsonc                     dS )NzMozilla/Firefox )selfs    r   __str__zgp_firefox_ext.__str__\   s      r   c                    	 t          j        | j        d           t          | j        d          5 }t          j        ||           t          j        d| j                   d d d            n# 1 swxY w Y   n*# t          $ r t          j        d| j                   Y nw xY w	 t          j        | j
        d           t          | j        d          5 }t          j        ||           t          j        d| j                   d d d            d S # 1 swxY w Y   d S # t          $ r t          j        d| j                   Y d S w xY w)NT)exist_okwzWrote Firefox preferencesz#Failed to write Firefox preferences)osmakedirs$_gp_firefox_ext__firefox_installdir1open_gp_firefox_ext__destfile1r   dumpr   debugPermissionError$_gp_firefox_ext__firefox_installdir2_gp_firefox_ext__destfile2)r:   r   fs      r   set_machine_policyz!gp_firefox_ext.set_machine_policy_   s   	0K2TBBBBd&,, I	(A&&&	5t7GHHHI I I I I I I I I I I I I I I  	0 	0 	0I;".0 0 0 0 0	0	0K2TBBBBd&,, I	(A&&&	5t7GHHHI I I I I I I I I I I I I I I I I I  	0 	0 	0I;".0 0 0 0 0 0	0sj   0A: 0A."A: .A22A: 5A26A: :$B! B!%0D 0DD DD DD $EEc                    t           j                            | j                  r\t	          | j        d          5 }t          j        |          }t          j        d| j                   d d d            n# 1 swxY w Y   nt           j                            | j	                  r\t	          | j	        d          5 }t          j        |          }t          j        d| j	                   d d d            n# 1 swxY w Y   ndi i}|S )NrzRead Firefox preferencesr   )
r?   pathexistsrH   rB   r   loadr   rE   rC   )r:   rL   r   s      r   get_machine_policyz!gp_firefox_ext.get_machine_policyr   sy   7>>$*++ 		(d&,, H9Q<<	4d6FGGGH H H H H H H H H H H H H H H W^^D,-- 	(d&,, H9Q<<	4d6FGGGH H H H H H H H H H H H H H H #B'Hs#   /A55A9<A9:/C55C9<C9Nc                    |,|| _         t          j                            |d          | _        |D ]\  }}| j                            |           t          |           |v r||t          |                                                    D ]T\  }}| 	                    t          j        |                     | j                            t          |           |           U| j                                         |D ]}|j        rd}	| j                            |j                   d}
t          j                            |j        |
          }|                     |          }|si|                                 }| j                            t          |           dt          j        |                     t)          ||	|j                  }| 	                    |           | j                                         d S )Nr7   !Software\Policies\Mozilla\FirefoxMACHINE/Registry.pol)rG   r?   rM   r"   rH   gp_dbset_guidstritemsrJ   r   r   deletecommitfile_sys_pathr1   parserP   storedumpsr4   r+   )r:   deleted_gpo_listchanged_gpo_list
policy_dirguidsettings	attributer   gpor*   pol_filerM   pol_confs                r   process_group_policyz#gp_firefox_ext.process_group_policy   s   !)3D&!w||JHHD. 	  	 ND(J%%%4yyH$$+3CII+>+D+D+F+F < <'Ix++DJx,@,@AAAJ%%c$ii;;;;J# 	$ 	$C  $@
##CH---1w||C$5x@@::d++ 2244
  TO!%H!5!57 7 7.x/7/?A A''111
!!###!	$ 	$r   c                    i }d}d}|j         r{t          j                            |j         |          }|                     |          }|s|S |j        D ]5}|j                            |          r|j        ||j        d|j	        <   6|S )NrS   rR   r   )
rZ   r?   rM   r"   r[   r+   r   r   r   r   )r:   rd   outputre   r*   rM   rf   r   s           r   rsopzgp_firefox_ext.rsop   s    )8 	I7<< 18<<Dzz$''H % I I9''00 IBC&Fqyyy!++>?r   )N)__name__
__module____qualname__rA   rG   r?   rM   r"   rC   rH   r;   rJ   rP   rg   rj   r9   r   r   r6   r6   V   s        =3',,4oFFK',,4oFFK! ! !0 0 0&   )-$ $ $ $>    r   r6   )r?   r   samba.gp.gpclassr   samba.dcerpcr   samba.commonr   samba.gp.util.loggingr   r   r4   r6   r9   r   r   <module>rr      s   " 
			  ' ' ' ' ' '       # # # # # # % % % % % %  4  4  4 lT T T T TZ T T T T Tr   