ó
    cÛ–i@  ã                   óŠ   • S SK r S SKJr  S SKJr  S SKJr  S SKr\" S5      r	SS jr
S rSS jrSS	 jrS
 rS rS rS rS rg)é    N)Únbt)ÚNet)ÚCommandErrorlûÿÿÿ         c                 óÔ  • U n[         R                  " SU 5      nU(       aŠ  UR                  S5      nUR                  S5      nUbD  UR                  5       nUR	                  5       UR	                  5       :w  a  [        SU SU S35      eUR	                  5       SUR                  5       4$ Sn[         R                  " SU 5      nU(       a~  UR                  S5      nUR                  S5      nUbY  UR                  5       nUR                  S	S5      S
   nUR	                  5       UR	                  5       :w  a  [        SU SU S35      eUR	                  5       UR                  5       S4$ )zËget the realm or the domain and the base user
from user like:
* username
* DOMAIN\username
* username@REALM

 A SamDB object can also be passed in to check
our domain or realm against the obtained ones.
z(\w+)\\(\w+$)é   é   zGiven domain 'z' does not match our domain 'z'!Ú z(\w+)@(\w+)Ú.r   zGiven realm 'z' does not match our realm ')	ÚreÚmatchÚgroupÚdomain_netbios_nameÚlowerr   ÚupperÚdomain_dns_nameÚsplit)	ÚuserÚsamÚbaseuserÚmÚdomainÚ
our_domainÚrealmÚ	our_realmÚour_realm_initials	            Ú5/usr/lib/python3/dist-packages/samba/netcmd/common.pyÚ_get_user_realm_domainr      sW  € ð €HÜ
�ŠÐ! 4Ó(€AÞØ—‘˜“ˆØ—7‘7˜1“:ˆà‰?Ø×0Ñ0Ó2ˆJØ�|‰|‹~ ×!1Ñ!1Ó!3Ó3Ü" ^°F°8ð <2Ø2<°¸Rð$Aó Bð Bð —‘Ó  " f§l¡l£nÐ5Ð5à€EÜ
�Š� Ó&€AÞØ—7‘7˜1“:ˆØ—‘˜“
ˆà‰?Ø×+Ñ+Ó-ˆIØ )§¡°°QÓ 7¸Ñ :ÐØ�{‰{‹}Ð 1× 7Ñ 7Ó 9Ó9Ü" ]°5°'ð :-Ø-6¨K°rð$;ó <ð <ð �N‰NÓ˜eŸk™k›m¨RÐ0Ð0ó    c                 ó†   • U R                  S5      R                  5       S-   U R                  S5      R                  5       -   $ )zdreturn the full DNS name of our own host. Used as a default
for hostname when running status queriesznetbios namer
   r   )Úgetr   )Úlps    r   Únetcmd_dnsnamer"   G   s7   € ð �6‰6�.Ó!×'Ñ'Ó)¨CÑ/°"·&±&¸³/×2GÑ2GÓ2IÑIÐIr   c                 óÔ   • [        XS9nUc  U R                  S5      nUR                  U[        R                  [        R
                  -  [        R                  -  S9nUR                  $ )z›Return domain-name of a writable/ldap-capable DC for the default
domain (parameter "realm" in smb.conf) unless another realm has been
specified as argument©Úcredsr!   r   )r   Úflags)r   r    Úfinddcr   ÚNBT_SERVER_LDAPÚNBT_SERVER_DSÚNBT_SERVER_WRITABLEÚpdc_dns_name)r!   r%   r   ÚnetÚ	cldap_rets        r   Únetcmd_finddcr.   M   sa   € ô �EÑ
!€CØ�}Ø—‘�w“ˆØ—
‘
 %Ü!$×!4Ñ!4´s×7HÑ7HÑ!HÌ3×KbÑKbÑ!bð ð d€Ià×!Ñ!Ð!r   c                 óv   • [        XS9nUR                  U[        R                  [        R                  -  S9nU$ )zZReturn domain information (CLDAP record) of the ldap-capable
DC with the specified addressr$   )Úaddressr&   )r   r'   r   r(   r)   )r!   r%   r0   r,   r-   s        r   Ú!netcmd_get_domain_infos_via_cldapr1   Y   s>   € ô �EÑ
!€CØ—
‘
 7Ü!$×!4Ñ!4´s×7HÑ7HÑ!Hð ð J€IàÐr   c                 óx   • SS K n [        U 5      nU H  nUR                  U5      S   S:X  d  M    g   g!    g= f)Nr   FÚCT)ÚunicodedataÚstrÚcategory)Úvalr4   Ústr_valÚcs       r   Úis_printable_attr_valr:   a   sI   € ÛðÜ�c“(ˆó ˆØ×Ñ Ó" 1Ñ%¨Õ,Ùñ ð øðÙús   †5 µ9c                 ór  • [         R                  " 5       nUR                  Ul        UR                  5        H\  nUS:X  a  M  X   nXBU'   SnU H  n[	        U5      (       a  M  Sn  O   U(       a  M;  X#   R                  [         R                  5        M^     U R                  U[         R                  5      nU$ )NÚdnFT)	ÚldbÚMessager<   Úkeysr:   Ú	set_flagsÚFLAG_FORCE_NO_BASE64_LDIFÚ
write_ldifÚCHANGETYPE_NONE)ÚsamdbÚmsgr   ÚkÚvalsÚneed_base64ÚvÚresult_ldifs           r   Úget_ldif_for_editorrK   s   s¢   € ô 	�Š‹€AØ�6‰6€A„Dà�X‰XŽZˆØ�‹9ÙØ‰vˆØˆ!‰ØˆÛˆAÜ$ Q×'Ñ'ÙØˆKÙñ	 ÷
 ˆ{Ø‰D�N‰Nœ3×8Ñ8Ö9ñ ð ×"Ñ" 1¤c×&9Ñ&9Ó:€KàÐr   c                 óX   • [        U 5      [        :X  a  g[        [        U 5      5      S-  $ )z8Converts a timestamp in -100 nanosecond units to minutesr   g    £áÁA)ÚintÚNEVER_TIMESTAMPÚabs©Útimestamp_strs    r   Útimestamp_to_minsrR   �   s)   € ô
 ˆ=Óœ_Ó,Øä”3�}Ó%Ó&¨(Ñ3Ð3r   c                 ó   • [        U 5      S-  $ )z5Converts a timestamp in -100 nanosecond units to daysi   )rR   rP   s    r   Útimestamp_to_daysrT   ˜   s   € ä˜]Ó+¨wÑ7Ð7r   c                 ó   • X;   a  X   S   $ U$ )z/get an attribute from a ldap msg with a defaultr   © )rE   ÚattrnameÚdefaults      r   Úattr_defaultrY   �   s   € àƒØ‰}˜QÑÐØ€Nr   )N)r   Úsamba.dcerpcr   Ú	samba.netr   Úsamba.netcmdr   r=   rM   rN   r   r"   r.   r1   r:   rK   rR   rT   rY   rV   r   r   Ú<module>r]      sR   ðó( 
Ý Ý Ý %Û 
ñ Ð)Ó*€ô%1òPJô	"ôòò$ò44ò8ó
r   