
    c*gR                     D    d dl  d dlmZ  G d dej                        Zy)    )*)
cmf_personc                       e Zd Zej                  j
                  g dz   Zedddd       Ze e	ddd      dde
fd	              Zedd
d       Zed        Zeddddd       Zy)	CmfPerson)register_sdesk_clientsdesk_updatesdesk_set_avatar	sdesk_getN)company_namephone_numberc                    d }|rWt         j                  j                  |      }|rt        dd       t         j                  |||      }|j	                           | ||||d      }|j	                          |S )N)nameu^   Попросите ваших коллег пригласить вас через ссылкуT)abort)r   email1phone1)r   loginphone_mobilecompanyservicedesk_allow)models
CmfCompanyget	cmf_alertsave)	clsr   r   r   r   argskargsr   users	            *./modules/servicedesk/models/cmf_person.py#register_sdesk_user_without_projectz-CmfPerson.register_sdesk_user_without_project   s{    ''+++>Gz  CG  H''\%P\']GLLNEgimn		    Tu2   Добавление клиента в ServiceDesk)	only_oncedescriptionshow_bg_progressbaremailsc                    ddl m} ddl}g }t        j                  j                  | dg      }t        j                  j                  |d      sYt        j                  |j                  k(  s<t        j                  j                  s"t        j                  t        j                  k(  r |       }	|D ]  }
|
|
j                         }
t        |
t        j                   t#        t%        |j                                     t#        t%        |j                         dz               d	|

      }t        j'                  d|        t        j                  j(                  j*                  |d<   t-        |      }t/        |      }t        j0                  j                  dgd      j2                  j*                  }|
d||d}|	j5                  t7        dd       d|t8        j:                  dd      }t        j'                  d| d|        |j<                  dk7  s|j>                  dk7  r-|jA                         }t        j'                  d|
 d|        ddd|
gdd|
gg}t        j'                  d |        t        jB                  j                  |d!g"      }|s=|r t        jD                  j                  |#      }t        jC                  |
|
|ddd$      }tF        jI                         5  |jK                          ddd       t        jL                  j                  d%d&|gg d'gd(g"      }|rJtF        jI                         5  |jN                  jQ                  |       |jK                  d)       ddd       |jQ                  |jR                  j*                          |S tU        d*t        j                         # 1 sw Y   xY w# 1 sw Y   [xY w)+uD   
        Добавить клиента для ServiceDesk
        r   )sessionN	cmf_owner)idfieldszsdesk-agent:default)	role_codei:	 guid)r   issiatexpjtisubzregister_persons:frominvite_must_change_passwordT)r*   cache_inmemoryinvite_by_email)emailactioninvite_tokenr3   )absoluteinternalzservicedesk/auth/signup   F)datacookiestimeoutverifyz,    zSigned up successfullyuE   ERROR: Не удалось отправить приглашение z: ORr6   ILIKEr   u"   Ищем пользователя rg_member_of)filterr*   )r)   )r   r6   r   r   
user_localemail_if_self_changesparent=)zproject_role.coderH   zsdesk-client:defaultmembers)	only_datau.   Операция не доступна для )+requestsr'   timer   
CmfProjectr   gcurrent_userin_project_roler(   is_admincurrent_personsystem_personlowerdictconfigAPP_FQDNstrintdebugr6   value
create_jwtrsa_sign_pack_jwtCmfGlobalSettingsr3   postauth_base_hrefrequestr=   status_codetextjsonr   r   cmfutildisable_aclr   CmfProjectRoleAssignrI   appendr)   CmfPermissionError)
project_idr%   r   r   kwargsr'   rL   resultprojectsr6   payloadjwtr8   r3   r<   res_filterpersonproject_roles                       r   r   zCmfPerson.register_sdesk_client   s    	%##'':{m'L>>))'=R)SWXWeWeipizizWz''1+;+;q+N	A ;/=U%"3tyy{#34"3tyy{5E'E#FG%$ +G956"#"2"2"8"8">"> )05,,009V8Whl0m  J  J  P  P ,!&"3(47R fft LMMde!%$+OOR  O +C54&9:??c)SXX9Q-Q XXZFGGcdicjjlmsltuv'7E!:Wgu<UV<WIFG))--WnEU-V"("3"3"7"77"7"C#--## '*.#(.3 . F ((* "KKM"  &::>>RUW^G_DvGxDM;  ?  P   ,,. :$,,33F;$))D)9: fiioo.w;/x M$'UVWVfVfUg%hii" ": :s   -O.OO
	O	rD   c                    |sy t         j                  j                  |      }|t        j                  k7  ry g d}i }|j                         D ]  \  }}||v s|||<     |j                  |i | y )Nru   )
first_name	last_namephone)r   r   r   rN   rR   itemsupdate)	r   rD   r   rk   rq   r*   
new_kwargskvs	            r   r   zCmfPerson.sdesk_updatei   sz    ""&"1!"""5
LLN 	"DAqF{ !
1	" 	

D'J'r!   c                      y N )r   r   rk   s      r   r
   zCmfPerson.sdesk_gety   s     r!   image
image_typeset_gravatarc                    t         j                  j                  |d         }|t        j                  k7  ry |j                  |||       y )Nr   r   )r   r   r   rN   rR   
set_avatar)r   r   r   r   r   rk   rq   s          r   r	   zCmfPerson.sdesk_set_avatar~   s?    ""47+!"""UzUr!   r   )__name__
__module____qualname__r   r   api_methodsclassmethodr    staticmethodcmf_deferred_joblistr   r   r
   r	   r   r!   r   r   r      s    &&22 6
 
K RVei 
 
 2f  }A  BKj$ Kj B KjZ (, ( (   +/Dt V Vr!   r   N)cmf.includemodules.person.modelsr   r   r   r!   r   <module>r      s!     ,~V
$$ ~Vr!   