
    IdS                     R    d dl Z d dlmZmZ d dlmZ d dlmZ d Z G d dee      Z	y)    N)
gp_pol_extgp_file_applier)sudo_applier_func)logc                 v    d}| D ]2  }|j                   |k(  s|j                  dk(  s#|j                  dk(  c S  y)Nz'Software\Policies\Centrify\UnixSettingszsudo.enabled   F)keyname	valuenamedata)entriessectiones      B/usr/lib/python3/dist-packages/samba/gp/gp_centrify_sudoers_ext.pyext_enabledr      s@    :G 99AKK>$A66Q;     c                   "    e Zd Zd Z	 ddZd Zy)gp_centrify_sudoers_extc                      y)NzCentrify/Sudo Rights )selfs    r   __str__zgp_centrify_sudoers_ext.__str__   s    %r   c           	      (   |D ]J  \  }}t        |       |v s|t        |          j                         D ]  \  }}| j                  |||        L |D ]=  }|j                  sd}	d}
t        j
                  j                  |j                  |
      }| j                  |      }|rt        |j                        shg }|j                  D ]W  }|j                  |	k(  s|j                  j                         s.d|j                  v r=|j                  |j                         Y  | j                  |j                   g| } | j"                  | }| j%                  |j                   ||t&        ||       | j)                  |j                   |g       @ y )N,Software\Policies\Centrify\UnixSettings\SuDoMACHINE/Registry.pol
**delvals.)keep)stritemsunapplyfile_sys_pathospathjoinparser   r   r	   r   stripr
   appendgenerate_attributenamegenerate_value_hashapplyr   clean)r   deleted_gpo_listchanged_gpo_listsdirguidsettings	attributesudoersgpor   pol_filer"   pol_confsudo_entriesr   
value_hashs                   r   process_group_policyz,gp_centrify_sudoers_ext.process_group_policy!   sp   . 	;ND(4yH$*23t9*=*C*C*E ;&IwLLy':;	;
 $ 	7C  L1ww||C$5$5x@::d+{83C3C'D!!)) 4AyyG+'1;;6$$++AFF3	4 4D33CHHL|L	 6T55|D


388Y
<M/ 

3889+
6/	7r   c                    i }d}d}|j                   rt        j                  j                  |j                   |      }| j	                  |      }|s|S |j
                  D ]  }|j                  |k(  s|j                  j                         s.d|j                  v r=t        |       |j                         vrg |t        |       <   |t        |          j                  |j                          |S )Nr   r   r   )r    r!   r"   r#   r$   r   r	   r   r%   r
   r   keysr&   )r   r3   outputr   r4   r"   r5   r   s           r   rsopzgp_centrify_sudoers_ext.rsopA   s    D)77<< 1 18<Dzz$'H%% 599'AFFLLN#q{{2 4y5,.s4y)3t9%,,QVV45 r   N)z/etc/sudoers.d)__name__
__module____qualname__r   r8   r<   r   r   r   r   r      s    & "7@r   r   )
r!   samba.gp.gpclassr   r   samba.gp.gp_sudoers_extr   samba.gp.util.loggingr   r   r   r   r   r   <module>rC      s&   " 
 8 5 %4j/ 4r   