
    x8i                     @    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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show_bg_progressbar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    rq |            }	|D ]a}
|
|
                                }
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&           t          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                   c|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_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   r   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L>))'=R)SS L	jWXWeipizWzWz' X{+,+;q+N+N		A E/ E/=  '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  [  [  [  &:>>RUW^G_DvDvDvGxDM;  ?  P  P   : ,,.. : :$,33F;;;$))D)999: : : : : : : : : : : : : : : fio....M$%hVWVf%h%hiiis$   "FF	
F	1OO	O	r0   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   rN   rR   itemsupdate)	r   r0   r   rk   rt   r*   
new_kwargskvs	            r   r   zCmfPerson.sdesk_updates   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   rN   rR   
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!   r   )__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  }A  B  B  BUj Uj$ Uj Uj Uj B  B \Ujn (, ( ( ( ( [(   [ +/Dt V V V V [V V Vr!   r   N)cmf.includemodules.person.modelsr   r   r   r!   r   <module>r      sn        , , , , , ,HV HV HV HV HV
$ HV HV HV HV HVr!   