U
    AfR                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)
cmf_personc                   @   s   e Zd Zejjddddg ZedddddZee	d	d
d	dde
dddZeddddZedd Zeddd	dddZdS )	CmfPersonregister_sdesk_clientsdesk_updatesdesk_set_avatar	sdesk_getN)company_namephone_numberc          	      O   s\   d }|r>t jj|d}|r&tddd t j|||d}|  | ||||dd}|  |S )N)nameu^   Попросите ваших коллег пригласить вас через ссылкуT)abort)r   Zemail1Zphone1)r   loginZphone_mobilecompanyservicedesk_allow)models
CmfCompanygetZ	cmf_alertsave)	clsr   r   r	   r
   argsZkargsr   user r   *./modules/servicedesk/models/cmf_person.py#register_sdesk_user_without_project   s    z-CmfPerson.register_sdesk_user_without_projectTu2   Добавление клиента в ServiceDesk)Z	only_oncedescriptionZshow_bg_progressbar)emailsc              
   O   st  ddl m} ddl}g }tjj| dgd}tjj|dds\tj|j	ks\tjj
s\tjtjkr`| }	|D ]}
|
dkrvqf|
 }
t|
tjtt| tt| d d	|
d
}td|  tjjj|d< t|}t|}tjjdgddjj}|
d||d}|	jtddd d|tjddd}td| d|  |jdksT|jdkrt|  }td|
 d|  qfddd|
gdd|
gg}td |  tj!j|d!gd"}|s|rtj"j|d#}tj!|
|
|dddd$}t#$  |%  W 5 Q R X tj&jd%d&|gd'd&d(ggd)gd"}|rLt#$  |j'(| |j%dd* W 5 Q R X |(|j)j qf|S t*d+tj dS ),uD   
        Добавить клиента для ServiceDesk
        r   )sessionN	cmf_owner)idfieldszsdesk-agent:default)Z	role_codei:	 Zguid)r   ZissZiatZexpZjtisubzregister_persons:frominvite_must_change_passwordT)r   Zcache_inmemoryZinvite_by_email)emailactioninvite_tokenr"   )absoluteZinternalzservicedesk/auth/signup   F)datacookiestimeoutZverifyz,    zSigned up successfullyuE   ERROR: Не удалось отправить приглашение z: ORr#   ZILIKEr   u"   Ищем пользователя Zrg_member_of)filterr   )r   )r   r#   r   r   Z
user_localZemail_if_self_changesparent=zproject_role.codezsdesk-client:defaultmembers)Z	only_datau.   Операция не доступна для )+Zrequestsr   timer   Z
CmfProjectr   gZcurrent_userZin_project_roler   Zis_admincurrent_personZsystem_personlowerdictZconfigZAPP_FQDNstrintdebugr#   valueZ
create_jwtZrsa_sign_pack_jwtZCmfGlobalSettingsr"   ZpostZauth_base_hrefZrequestr)   Zstatus_codetextZjsonr   r   ZcmfutilZdisable_aclr   ZCmfProjectRoleAssignr0   appendr   ZCmfPermissionError)Z
project_idr   r   r   kwargsr   r1   resultZprojectsr#   ZpayloadZjwtr%   r"   r(   resZ_filterZpersonZproject_roler   r   r   r      s    

  

zCmfPerson.register_sdesk_clientr-   c          	      O   sd   |sd S t jj|d}|tjkr$d S dddg}i }| D ]\}}||kr:|||< q:|j|| d S )Nr@   Z
first_name	last_nameZphone)r   r   r   r2   r3   itemsupdate)	r   r-   r   r<   r?   r   Z
new_kwargskvr   r   r   r   i   s    


zCmfPerson.sdesk_updatec                 O   s   d S )Nr   )r   r   r<   r   r   r   r   y   s    zCmfPerson.sdesk_getimage
image_typeset_gravatarc                O   s2   t j|d }|tjkrd S |j|||d d S )Nr   rF   )r   r   r   r2   r3   Z
set_avatar)r   rG   rH   rI   r   r<   r?   r   r   r   r   ~   s    
zCmfPerson.sdesk_set_avatar)N)__name__
__module____qualname__r   r   Zapi_methodsclassmethodr   staticmethodZcmf_deferred_joblistr   r   r   r   r   r   r   r   r      s"   M
r   N)Zcmf.includeZmodules.person.modelsr   r   r   r   r   r   <module>   s   