+
    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      ó   € Ø”3�s“8˜b•=Õ!Ð!ó    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Õ0°7Õ:Ð;Ó<Ð<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  rÈV\"        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 controllerNú0MACHINE/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�  € Ø�7‰7�;‰;�}Ó%Ð)MÔMÙØEˆÛ.‰NˆDØ�J‰J×Ñ Ô%Ø#Ÿ=™=ž?�Øœc $›iÖ'Ø&.Õ&7×&=Ñ&=Ö&?™
˜Ø×(Ñ(¨Ô4ØŸ
™
×)Ñ)¨'Ô7ØŸ
™
×)Ñ)Ö+ó '@ó +ñ /ô $ˆCØ× × Ò Ø—
‘
×#Ñ# C§H¡HÔ-Ü—w‘w—|‘| C×$5Ñ$5°xÓ@�ØŸ:™: dÓ+�ßÙØ'×0Ñ0Ö2�GØ¤# d£)Ö+Ø*2¯.©.¸Ö*A™J˜CØ"¬*×*>Ñ*>Ô>Ù (Ü",×"6Ñ"6°sÕ";˜CØ)-¯©«×):Ñ):¸3Ó)?˜JØ ×,Ñ,¨S°*¸UÓ2CÔDØ ŸJ™J×-Ñ-Ö/ó +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ˆÜ�Š³9»gÂsÐKÔLØŠ?Ø�J‰J×Ñ×%Ñ% i´¸C³ÔAØ�J‰J×ÑœS ›Y¨	ßô 4>¸gÔ3FØ$(ö*ð �J‰J×Ñ×&Ñ& yÔ1Ø�J‰J×Ñœ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Ð   € ØˆØ�7‰7�;‰;�}Ó%Ð)MÔMØˆMØEˆØ××ÐÜ—7‘7—<‘< × 1Ñ 1°8Ó<ˆDØ—z‘z $Ó'ˆHßØ�Ü�4‹y˜H×-Ñ-Ó/Ô/Ü˜d›)�Ø4<·N±NÀ7Ô4Kô #FÑ4K©D¨AÜ)3×)=Ñ)=×)AÑ)AÀ!×)Dô $( 1¢4Ñ4Kò #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_extzÛThis 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Ü˜TŸW™W×.Ñ.Ó0Ü*8Ó*:Ø)-¯©Ø $§¡ô)ˆDŽHøô œ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  ršV	! 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  rèV\$        P&                  9  d   K  \$        P&                  V,          pV P                  4       P                  V4      w  rŸV	! 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¨  € Ø�7‰7�;‰;�}Ó%Ð)MÔMÙØ�‰ŒØEˆÛ.‰NˆDØ�J‰J×Ñ Ô%Ø#Ÿ=™=ž?�Øœc $›iÖ'Ø&.Õ&7×&=Ñ&=Ö&?™
˜Ø*.¯+©+«-×*;Ñ*;¸CÓ*@™˜Ù$ SÔ0ØŸ
™
×)Ñ)¨'Ô7ØŸ
™
×)Ñ)Ö+ó	 '@ó +ñ /ô $ˆCØ× × Ò Ø—
‘
×#Ñ# C§H¡HÔ-Ü—w‘w—|‘| C×$5Ñ$5°xÓ@�ØŸ:™: dÓ+�ßÙØ'×0Ñ0Ö2�GØ¤# d£)Ö+Ø*2¯.©.¸Ö*A™J˜CØ"¬-×*AÑ*AÔAÙ (Ü"/×"9Ñ"9¸#Õ">˜CØ9=¿¹»×9JÑ9JÈ3Ó9OÑ6˜\Ù(¨¨j¸Ó.?Ô@Ø ŸJ™J×-Ñ-Ö/ó +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› I¬s°7«|Ô<Ø�‰×Ñ˜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› I¬s°7«|Ô<Ø�‰×!Ñ! #Ö&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› I¬s°7«|Ô<Ø�‰×"Ñ" 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Ð   € ØˆØ�7‰7�;‰;�}Ó%Ð)MÔMØˆMØEˆØ××ÐÜ—7‘7—<‘< × 1Ñ 1°8Ó<ˆDØ—z‘z $Ó'ˆHßØ�Ü�4‹y˜H×-Ñ-Ó/Ô/Ü˜d›)�Ø4<·N±NÀ7Ô4Kô #IÑ4K©D¨AÜ)6×)@Ñ)@×)DÑ)DÀQ×)Gô $( 1¢4Ñ4Kò #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