
    fR                     @    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    rK |            }	|D ];}
|
|
                                }
t          |
t          j        t#          t%          |                                                    t#          t%          |                                dz                       d	|

          }t                              d|            t          j        j        j        |d<   t-          |          }t/          |          }t          j                            dgd          j        j        }|
d||d}|	                    t7          dd           d|t8          j        dd          }t                              d| d|            |j        dk    s|j        dk    r6|                                 }t                              d|
 d|            ddd|
gdd|
gg}t                              d |            t          j!                            |d!g"          }|sB|r t          j"                            |#          }t          !                    |
|
|ddd$          }tF          $                                5  |%                                 ddd           n# 1 swxY w Y   t          j&                            d%d&|gg d'gd(g"          }|ratF          $                                5  |j'        (                    |           |%                    d)           ddd           n# 1 swxY w Y   |(                    |j)        j                   =|S tU          d*t          j                   )+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L>))'=R)SS B	jWXWeipizWzWz' X{+,+;q+N+N		A ;/ ;/=U%"3tyy{{#3#344"3tyy{{5E'E#F#FGG%$   5G55666"#"2"8"> ))055,009V8Whl0mm  J  P ,!&"3(47R  fft L L Leee!%$+OR  O O 9C99499:::?c))SX9Q-Q-Q XXZZFGGudiuumsuuvvv'7E!:Wgu<UVFWFFGGG)--WnEU-VV 
 D"("3"7"77"7"C"C#--## '*.#(.3 .  F ((** " "KKMMM" " " " " " " " " " " " " " "  &:>>RUW^G_DvDvDvGxDM;  ?  P  P   : ,,.. : :$,33F;;;$))D)999: : : : : : : : : : : : : : : fio....M$%hVWVf%h%hiiis$   L""L&	)L&	11N..N2	5N2	rD   c                    |sd S t           j                            |          }|t          j        k    rd S g d}i }|                                D ]\  }}||v r|||<    |j        |i | d S )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   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_gety   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   rq   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Kj Kj$ Kj Kj Kj B  B \KjZ (, ( ( ( ( [(   [ +/Dt V V V V [V V Vr!   r   N)cmf.includemodules.person.modelsr   r   r   r!   r   <module>r      sn        , , , , , ,~V ~V ~V ~V ~V
$ ~V ~V ~V ~V ~Vr!   