+
    4Ssi#                         ^ RI t^ RIHt ^ RIHt ^ RIHt  ^ RIH	t	 ^ RI
Ht ^ RIHt R tR	 tR
 t ! R R]4      t ! R R]4      tR#   ] d     L0i ; i)    N)
gp_inf_ext)system_session)
get_string)LdbError)SamDB)logc                 4    R \        V 4      ^<,          ,          # z%dintvals   &5/usr/lib/python3/dist-packages/samba/gp/gp_sec_ext.pymins_to_hoursr          3s8b=!!    c                 4    R \        V 4      ^,          ,          # r
   r   r   s   &r   days_to_hoursr       r   r   c                 v    ^<p^<p^pRp\        V 4      p \        W,          V,          V,          V,          ) 4      # )<   i )r   str)r   secondsminuteshourssam_adds   &    r   days2rel_nttimer   #   s>    GGEG
c(C(507:;<<r   c                   N   a  ] tR t^+t o RRRRRR/tR tR tR	 tR
 tR t	Rt
V tR# )
gp_krb_extMaxTicketAgekdc:user_ticket_lifetimeMaxServiceAgekdc:service_ticket_lifetimeMaxRenewAgekdc:renewal_lifetimec           	     J   V P                   P                  R 4      R8w  d   R# RpV F  w  rEV P                  P                  V4       VP	                  4        Fz  pV\        V 4      8X  g   K  WV,          P                  4        FK  w  rxV P                  Wx4       V P                  P                  Wg4       V P                  P                  4        KM  	  K|  	  K  	  V EFC  p	V	P                  '       g   K  V P                  P                  V	P                  4       \        P                  P                  V	P                  V4      p
V P                  V
4      pV'       g   K  VP!                  4        F  pV\        V 4      8X  g   K  VP                  V4       F  w  rV\"        P$                  9  d   K  \"        P$                  V,          pV P'                  4       P                  V4      pV P                  W}! V4      4       V P                  P                  4        K  	  K  	  EKF  	  R# server role"active directory domain controllerN0MACHINE/Microsoft/Windows NT/SecEdit/GptTmpl.inf)lpgetgp_dbset_guidkeysr   itemsset_kdc_tdbdeletecommitfile_sys_pathnameospathjoinparsesectionsr   	apply_mapmapper)selfdeleted_gpo_listchanged_gpo_listinf_fileguidsettingssectionattvaluegpor6   inf_confkey
value_funcs   &&&           r   process_group_policygp_krb_ext.process_group_policy/   s   77;;}%)MME.NDJJ%#==?c$i'&.&7&=&=&?
((4

))'7

))+ '@ + / $C   

##CHH-ww||C$5$5x@::d+'002G#d)+*2..*AJC"**>*>> (","6"6s";C)-):):3)?J ,,S*U2CD JJ--/ +B  3 $r   c                   V P                   P                  P                  V4      p\        P                  ! V: R V: RV: 24       Vek   V P                   P                  P                  V\        V4      4       V P                   P                  \        V 4      TV'       d   \        V4      MR4       R# V P                   P                  P                  V4       V P                   P                  \        V 4      V4       R# )z was changed from  to N)	r,   gpostorer+   r   infostorer   r   r1   r<   	attributer   old_vals   &&& r   r0   gp_krb_ext.set_kdc_tdbM   s    **%%)))49gsKL?JJ%%iCAJJSY	 4>g3F$(* JJ&&y1JJc$i3r   c                $    R R R\         R\        /# )r    c                     V # N r   s   &r   <lambda>#gp_krb_ext.mapper.<locals>.<lambda>Y   s    r   r"   r$   )r   r   r<   s   &r   r;   gp_krb_ext.mapperX   s    *O-}& 	r   c                    R # )zKerberos PolicyrW   rZ   s   &r   __str__gp_krb_ext.__str__^   s     r   c                   / pV P                   P                  R 4      R8w  d   V# RpVP                  '       d   \        P                  P                  VP                  V4      pV P                  V4      pV'       g   V# \        V 4      VP                  4       9   dZ   \        V 4      pVP                  V4       UUu/ uF.  w  rx\        P                  P                  V4      '       g   K,  WxbK0  	  uppW&&   V# u uppi r'   r(   r)   )r*   r+   r3   r5   r6   r7   r8   r   r9   r/   r   r:   	r<   rE   outputr?   r6   rF   rB   kvs	   &&       r   rsopgp_krb_ext.rsopa   s    77;;}%)MMME77<< 1 18<Dzz$'H4yH--//d)4<NN74K #F4KDA)3)=)=)A)A!)D $(144K #F#F   ;)C7)C7rW   N)__name__
__module____qualname____firstlineno__r:   rI   r0   r;   r]   re   __static_attributes____classdictcell____classdict__s   @r   r   r   +   s<      #=!#@#9<I0<	4! r   r   c                   n   a  ] tR t^rt o RtR tRRRRRRR	R
/tR tR tR t	R t
R tR tR tR tRtV tR# )gp_access_extzThis class takes the .inf file parameter (essentially a GPO file mapped
to a GUID), hashmaps it to the Samba parameter, which then uses an ldb
object to update the parameter to Samba4. Not registry oriented whatsoever.
c                     \        V P                  P                  4       \        4       V P                  V P                  R 7      V n        R#   \        \        3 d    \        R4      hi ; i))session_infocredentialsr*   z/Failed to load SamDB for assigning Group PolicyN)	r   r*   	samdb_urlr   credsldb	NameErrorr   	ExceptionrZ   s   &r   load_ldbgp_access_ext.load_ldbx   s[    	OTWW..0*8*:)- $)DH 8$ 	OMNN	Os   AA A)MinimumPasswordAge	minPwdAgeMaximumPasswordAge	maxPwdAgeMinimumPasswordLengthminPwdLengthPasswordComplexitypwdPropertiesc           	        V P                   P                  R 4      R8w  d   R# V P                  4        RpV F  w  rEV P                  P	                  V4       VP                  4        F  pV\        V 4      8X  g   K  WV,          P                  4        Fc  w  rxV P                  4       P                  V4      w  rV	! Wx4       V P                  P                  Wg4       V P                  P                  4        Ke  	  K  	  K  	  V EF<  pVP                  '       g   K  V P                  P	                  VP                  4       \        P                  P                  VP                  V4      pV P!                  V4      pV'       g   K  VP#                  4        F  pV\        V 4      8X  g   K  VP                  V4       F|  w  rV\$        P&                  9  d   K  \$        P&                  V,          pV P                  4       P                  V4      w  rV	! W! V4      4       V P                  P                  4        K~  	  K  	  EK?  	  R# r&   )r*   r+   rz   r,   r-   r.   r   r/   r;   r1   r2   r3   r4   r5   r6   r7   r8   r9   rq   r:   )r<   r=   r>   r?   r@   rA   rB   rC   rD   update_samba_rE   r6   rF   rG   rH   s   &&&             r   rI   "gp_access_ext.process_group_policy   s   77;;}%)MME.NDJJ%#==?c$i'&.&7&=&=&?
*.++-*;*;C*@$S0

))'7

))+	 '@ + / $C   

##CHH-ww||C$5$5x@::d+'002G#d)+*2..*AJC"-*A*AA ("/"9"9#">C9=9J9J39O6\(j.?@ JJ--/ +B  3 $r   c                
   V P                   P                  4       p\        P                  ! R V: RV: 24       V P                  P                  \        V 4      V\        V4      4       V P                   P                  V4       R# )z*KDC Minimum Password age was changed from rL   N)rw   get_minPwdAger   rN   r,   rO   r   set_minPwdAgerP   s   &&& r   ch_minPwdAgegp_access_ext.ch_minPwdAge   Z    ((((*S" 	#

TIs7|<s#r   c                
   V P                   P                  4       p\        P                  ! R V: RV: 24       V P                  P                  \        V 4      V\        V4      4       V P                   P                  V4       R# )z*KDC Maximum Password age was changed from rL   N)rw   get_maxPwdAger   rN   r,   rO   r   set_maxPwdAgerP   s   &&& r   ch_maxPwdAgegp_access_ext.ch_maxPwdAge   r   r   c                
   V P                   P                  4       p\        P                  ! R V: RV: 24       V P                  P                  \        V 4      V\        V4      4       V P                   P                  V4       R# )z-KDC Minimum Password length was changed from rL   N)rw   get_minPwdLengthr   rN   r,   rO   r   set_minPwdLengthrP   s   &&& r   ch_minPwdLengthgp_access_ext.ch_minPwdLength   sZ    ((++-S" 	#

TIs7|<!!#&r   c                
   V P                   P                  4       p\        P                  ! R V: RV: 24       V P                  P                  \        V 4      V\        V4      4       V P                   P                  V4       R# )z*KDC Password Properties were changed from rL   N)rw   get_pwdPropertiesr   rN   r,   rO   r   set_pwdPropertiesrP   s   &&& r   ch_pwdPropertiesgp_access_ext.ch_pwdProperties   sZ    ((,,.c# 	$

TIs7|<""3'r   c           	         RV P                   \        3RV P                  \        3RV P                  R 3RV P                  R 3/# )zldap value : samba setterr}   r   r   c                     V # rV   rW   r   s   &r   rX   &gp_access_ext.mapper.<locals>.<lambda>   s    3r   r   c                     V # rV   rW   r   s   &r   rX   r      s    Sr   )r   r   r   r   r   rZ   s   &r   r;   gp_access_ext.mapper   sN    d//Ad//A !5!5 G$"7"7!I 	r   c                    R # )zSystem AccessrW   rZ   s   &r   r]   gp_access_ext.__str__   s    r   c                   / pV P                   P                  R 4      R8w  d   V# RpVP                  '       d   \        P                  P                  VP                  V4      pV P                  V4      pV'       g   V# \        V 4      VP                  4       9   dZ   \        V 4      pVP                  V4       UUu/ uF.  w  rx\        P                  P                  V4      '       g   K,  WxbK0  	  uppW&&   V# u uppi r`   )r*   r+   r3   r5   r6   r7   r8   r   r9   r/   rq   r:   ra   s	   &&       r   re   gp_access_ext.rsop   s    77;;}%)MMME77<< 1 18<Dzz$'H4yH--//d)4<NN74K #I4KDA)6)@)@)D)DQ)G $(144K #I#Irg   )rw   N)rh   ri   rj   rk   __doc__rz   r:   rI   r   r   r   r   r;   r]   re   rl   rm   rn   s   @r   rq   rq   r   s[     
O 'K&K)N&O>I0@$$'(	 r   rq   )os.pathr5   samba.gp.gpclassr   
samba.authr   samba.commonr   rw   r   samba.samdbr   ImportErrorsamba.gp.util.loggingr   r   r   r   r   rq   rW   r   r   <module>r      sd   $  ' % #	! &""=D DNkJ ks  		s   A AA