
    ,riZ                     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                         }dd	d
|gdd
|gg}t        j                  d|        t        j                  j                  |dg      }d}|sld}|r t        j                   j                  |      }t        j                  |||ddd      }t"        j%                         5  |j'                          ddd       |rt)        |t*        j,                  t/        t1        |j                                     t/        t1        |j                         dz               d|      }t        j                  d|        t        j                  j2                  j4                  |d<   t7        |      }t9        |      }t        j:                  j                  dgd      j<                  j4                  }|d||d}|
j?                  tA        dd       d|tB        jD                  dd      }t        j                  d| d |        |jF                  d!k7  s|jH                  d"k7  rF|jK                         }t        j                  d#| d$|        [t        j                  d%| d&       |rut        jL                  j                  d'd(|	gg d)gd*g      }|rJt"        j%                         5  |jN                  jQ                  |       |j'                  d+       ddd       |jQ                  |jR                  j4                          |S tU        d,t        j                         # 1 sw Y   oxY w# 1 sw Y   \xY w)-uD   
        Добавить клиента для ServiceDesk
        r   )sessionN	cmf_owner)idfieldszsdesk-agent:default)	role_codeORemailILIKEr   u"   Ищем пользователя rg_member_of)filterr*   FT)r)   )r   r-   r   r   
user_localemail_if_self_changesi:	 guid)r   issiatexpjtisubzregister_persons:frominvite_must_change_password)r*   cache_inmemoryinvite_by_email)r-   actioninvite_tokenr:   )absoluteinternalzservicedesk/auth/signup   )datacookiestimeoutverifyz,    zSigned up successfullyuE   ERROR: Не удалось отправить приглашение z: u   Пользователь uZ    уже существует, пропускаем отправку приглашения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debugr   r   cmfutildisable_aclr   dictconfigAPP_FQDNstrintr-   value
create_jwtrsa_sign_pack_jwtCmfGlobalSettingsr:   postauth_base_hrefrequestrC   status_codetextjsonCmfProjectRoleAssignrI   appendr)   CmfPermissionError)
project_idr%   r   add_project_roler   kwargsr'   rL   resultprojectsr-   _filterpersonperson_is_newpayloadjwtr>   r:   rB   resproject_roles                         r   r   zCmfPerson.register_sdesk_client   s    	%##'':{m'L>>))'=R)SWXWeWeipizizWz''1+;+;q+N	A F/=  '7E!:Wgu<UV<WIFG))--WnEU-V %$(M"("3"3"7"77"7"C#--## '*.#(.3 . F !,,. && !"#)??#&s499;'7#8#&s499;9I+I'J#K#)#(!G GG/y9:&'&6&6&<&<&B&BGFO$W-C#4S#9L0044=Z<[lp4q  N  N  T  T 0%*&7,8;VD &&ND4$P#QQh!i%)(/E ! SC GG/uBtf=>#-=U1U!$"ghmgnnpqwpx yz GG7w  ?Y  Z  [ $#)#>#>#B#BHVY[bKcHzK|HQ{ $C $TL $$002 >(0077?(---=> fiioo.MF/N M$'UVWVfVfUg%hiie& &V> >s   %O#'.O0#O-	0O9	r0   c                    |sy t         j                  j                  |      }|t        j                  k7  ry g d}i }|j                         D ]  \  }}||v s|||<     |j                  |i | y )Nrw   )
first_name	last_namephone)r   r   r   rN   rR   itemsupdate)	r   r0   r   rl   ru   r*   
new_kwargskvs	            r   r   zCmfPerson.sdesk_updatet   sz    ""&"1!"""5
LLN 	"DAqF{ !
1	" 	

D'J'r!   c                      y )N )r   r   rl   s      r   r
   zCmfPerson.sdesk_get   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   rl   ru   s          r   r	   zCmfPerson.sdesk_set_avatar   s?    ""47+!"""UzUr!   )NT)__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Vj$ Vj B Vjp (, ( (   +/Dt V Vr!   r   N)cmf.includemodules.person.modelsr   r   r   r!   r   <module>r      s!     ,IV
$$ IVr!   