U
    [Se                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)
cmf_personc                   @   sL   e Zd ZedddddZeejdddeddd	Z	ed
d Z
dS )	CmfPersonN)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_projectT)Z	only_once)emailsc              
   O   sT  ddl m} ddl}g }tjj| dgd}tjj|ddsPtj|j	ksPtjj
r@| }	|D ]}
|
dkrjqZ|
 }
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jj}|
d||d}|	jtj d|tjdd}td| d|  |jdks>|jdkr^| }td|
 d|  qZdd|
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}|r,t"#  |j&'| |j$dd' W 5 Q R X |'|j(j qZ|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_password)r   Zinvite_by_email)emailactioninvite_tokenr   z/servicedesk/auth/signup   )datacookiestimeoutz,    zSigned up successfullyuE   ERROR: Не удалось отправить приглашение z: r   z==u"   Ищем пользователя Zrg_member_of)filterr   )r   TF)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lowerdictZconfigZAPP_FQDNstrintdebugZcurrent_personr   valueZ
create_jwtZrsa_sign_pack_jwtZCmfGlobalSettingsr   ZpostZAUTH_SERVER_URLZrequestr#   Zstatus_codetextZjsonr   r   ZcmfutilZdisable_aclr   ZCmfProjectRoleAssignr)   appendr   ZCmfPermissionError)Z
project_idr   r
   r   kwargsr   r*   resultZprojectsr   ZpayloadZjwtr    r   r"   resZ_filterZpersonZproject_roler   r   r   register_sdesk_client   s    
 
	

zCmfPerson.register_sdesk_clientc                 O   s   d S )Nr   )r   r   r4   r   r   r   	sdesk_getb   s    zCmfPerson.sdesk_get)N)__name__
__module____qualname__classmethodr   staticmethodZ
celery_appZtasklistr8   r9   r   r   r   r   r      s   
Mr   N)Zcmf.includeZmodules.person.modelsr   r   r   r   r   r   <module>   s   