
    Id                     L    d dl Z d dlmZmZ d dlmZ d dlmZ  G d dee      Zy)    N)
gp_xml_extgp_file_applier)sudo_applier_func)logc                   "    e Zd Zd Z	 ddZd Zy)vgp_sudoers_extc                      y)NzVGP/Unix Settings/Sudo Rights )selfs    :/usr/lib/python3/dist-packages/samba/gp/vgp_sudoers_ext.py__str__zvgp_sudoers_ext.__str__   s    .    c           	         |D ]J  \  }}t        |       |v s|t        |          j                         D ]  \  }}| j                  |||        L |D ]  }|j                  sd}	t        j
                  j                  |j                  |	      }
| j                  |
      }|sQ|j                  d      }|j                  d      }g }|j                  d      D ]  }|j                  d      j                  }|j                  d      j                  }|j                  d      }g }|D ]"  }|j                  |j                  d             $ t        |      d	kD  rKd
j                  |D cg c]/  }|j                  d   dk(  r|j                  nd|j                  z  1 c}      }nd}|j                  d      d u }|rdnd}|d|d|d|}|j                  |        | j                  |j                         } | j"                  | }| j%                  |j                   ||t&        ||       | j)                  |j                   |g        y c c}w )N7MACHINE/VGP/VTLA/Sudo/SudoersConfiguration/manifest.xmlpolicysettingdatasudoers_entrycommanduserlistelement	principalr   ,type%s%%ALLpassword
 NOPASSWD:  ALL=() )keep)stritemsunapplyfile_sys_pathospathjoinparsefindfindalltextextendlenattribappendgenerate_attributenamegenerate_value_hashapplyr   clean)r   deleted_gpo_listchanged_gpo_listsdirguidsettings	attributesudoersgpoxmlr(   xml_confpolicyr   sudo_entriesentryr   r   listelements
principalsr   uuname
nopasswordnp_entryp
value_hashs                              r   process_group_policyz$vgp_sudoers_ext.process_group_policy   s?   . 	;ND(4yH$*23t9*=*C*C*E ;&IwLLy':;	;
 $ #	7C  Oww||C$5$5s;::d+!7{{6*!!\\/: +E#jj388G ::f-22D#(==#?L!#J'3 L"))+*=*=k*JKL:* #:D*F56 56HHV4D4N!&&!'!&&+1 *F !G !&!&J!74!?J/9|rH.3T8WMA ''*+$ !33CHH=	 6T55|D


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

3889+
6G#	7$*Fs   )4Ic                    i }d}|j                   rt        j                  j                  |j                   |      }| j	                  |      }|s|S |j                  d      }|j                  d      }|j                  d      D ]:  }|j                  d      j                  }	|j                  d      j                  }
|j                  d      }g }|D ]"  }|j                  |j                  d             $ t        |      d	kD  rKd
j                  |D cg c]/  }|j                  d   dk(  r|j                  nd|j                  z  1 c}      }nd}|j                  d      d u }|rdnd}|d|
d|d|	}t        |       |j                         vrg |t        |       <   |t        |          j                  |       = |S c c}w )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   )r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r#   keysr1   )r   r>   outputr?   r(   r@   rA   r   rC   r   r   rD   rE   r   rF   rG   rH   rI   rJ   s                      r   rsopzvgp_sudoers_ext.rsopF   s   G77<< 1 137Dzz$'H]]?3F;;v&Do6 ,**Y/44zz&)..$}}];
#/ HK%%k&9&9+&FGHz?Q&HH6@&B12 120@F0Jaff#aff_'- &B CE "E"ZZ
3t;
+5<2*/xIt9FKKM1(*F3t9%s4y!((+#,$ &Bs   4G
N)z/etc/sudoers.d)__name__
__module____qualname__r   rL   rP   r
   r   r   r   r      s    / "*7Xr   r   )	r'   samba.gp.gpclassr   r   samba.gp.gp_sudoers_extr   samba.gp.util.loggingr   r   r
   r   r   <module>rW      s#   " 
 8 5 %Lj/ Lr   