
    hi@                     @    d dl T d dlmZ  G d dej                  ZdS )    )*)
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e
fd	                        Zedd
d            Zed             Zeddddd            ZdS )	CmfPerson)register_sdesk_clientsdesk_updatesdesk_set_avatar	sdesk_getN)company_namephone_numberc                   d }|rdt           j                            |          }|rt          dd           t                               |||          }|                                  | ||||d          }|                                 |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 Hz  CG  H  H  H  H''\%P\']]GLLNNNsEgimnnn		    Tu2   Добавление клиента в ServiceDesk)	only_oncedescriptionemailsc                 @   ddl m} ddl}g }t          j                            | dg          }	t          j                            |	d          sAt          j        |	j	        k    s,t          j        j
        st          j        t          j        k    rs |            }
|D ]c}||                                }dd	d
|gdd
|gg}t                              d|            t          j                            |dg          }d}|sd}|r t          j                            |          }t                              |||ddd          }t"                                          5  |                                 ddd           n# 1 swxY w Y   |rt)          |t*          j        t/          t1          |                                                    t/          t1          |                                dz                       d|          }t                              d|            t          j        j        j        |d<   t7          |          }t9          |          }t          j                            dgd          j        j        }|d||d}|
                    tA          dd           d|tB          j"        dd          }t                              d| d |            |j#        d!k    s|j$        d"k    r6|%                                }t                              d#| d$|            nt                              d%| d&           |rt          j&                            d'd(|	gg d)gd*g          }|rat"                                          5  |j'        (                    |           |                    d+           ddd           n# 1 swxY w Y   |(                    |j)        j                   e|S tU          d,t          j                   )-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_tokenr9   )absoluteinternalzservicedesk/auth/signup   )datacookiestimeoutverifyz,    zSigned up successfullyuE   ERROR: Не удалось отправить приглашение z: u   Пользователь uZ    уже существует, пропускаем отправку приглашенияparent=)zproject_role.coderG   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CmfGlobalSettingsr9   postauth_base_hrefrequestrB   status_codetextjsonCmfProjectRoleAssignrH   appendr(   CmfPermissionError)
project_idr$   r   add_project_roler   kwargsr&   rK   resultprojectsr,   _filterpersonperson_is_newpayloadjwtr=   r9   rA   resproject_roles                         r   r   zCmfPerson.register_sdesk_client   s    	%$$$$$#'':{m'LL>))'=R)SS M	jWXWeipizWzWz' X{+,+;q+N+N		A F/ F/=  '7E!:Wgu<UVFWFFGGG)--WnEU-VV % &$(M D"("3"7"77"7"C"C#--## '*.#(.3 .  F !,,.. & && & & & & & & & & & & & & & & ! ["#)?#&s499;;'7'7#8#8#&s499;;9I+I'J'J#K#K#)#(! ! !G GG999:::&'&6&<&BGFO$W--C#4S#9#9L044=Z<[lp4qq  N  T 0%*&7,8;V D &&ND4$P$P$P!i!i!i%)(/E ! S SC GG===t==>>>#--=U1U1U!$ yhm y yqw y yzzz  2V
 GG  Z  Z  Z  Z  [  [  [ $ >#)#>#B#BHVY[bKcHzHzHzK|HQ{ $C $T $TL $ >$0022 > >(077???(---===> > > > > > > > > > > > > > > fio....M$%hVWVf%h%hiiis$   "FF	
F	1OO	O	r/   c                    |sd S t           j                            |          }|t          j        k    rd S g d}i }|                                D ]\  }}||v r|||<    |j        |i | d S )Nrv   )
first_name	last_namephone)r   r   r   rM   rQ   itemsupdate)	r   r/   r   rk   rt   r)   
new_kwargskvs	            r   r   zCmfPerson.sdesk_updatet   s     	4""&"11!"""4555
LLNN 	" 	"DAqF{{ !
1
D'J'''''r!   c                     d S )N )r   r   rk   s      r   r
   zCmfPerson.sdesk_get   s	     tr!   image
image_typeset_gravatarc                    t           j                            |d                   }|t          j        k    rd S |                    |||           d S )Nr   r   )r   r   r   rM   rQ   
set_avatar)r   r   r   r   r   rk   rt   s          r   r	   zCmfPerson.sdesk_set_avatar   sM    ""47++!"""4UzUUUU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 6
 6
 6
 
K RVei 
 
 
 
 [
 2fgggVj Vj$ Vj Vj Vj hg \Vjp (, ( ( ( ( [(   [ +/Dt V V V V [V V Vr!   r   N)cmf.includemodules.person.modelsr   r   r   r!   r   <module>r      sn        , , , , , ,IV IV IV IV IV
$ IV IV IV IV IVr!   