U
    TFd                     @   s0   d dl Z d dlmZ d dlT G dd deZdS )    N)commit_all_ds)*c                   @   sL   e Zd ZdZdZedd ZdddZedd	 Zed
d Z	dddZ
dS )ResponseMixinZ      c                 C   s   i }| dkrt dddd}|S )N)z	127.0.0.1	localhostTZlax)securehttponlysamesite)dict)cookie_domaincookie_kwargs r   )/opt/crm/./modules/auth/views/response.pyget_cookie_kwargs   s    zResponseMixin.get_cookie_kwargsNc                 C   s   t   t|tr$tdd|idd}ttdtj}t	|}|r`| 
|||| | ||| n,|jd|dd	| |jd|dd	| |S )u    TODO: зарефакторить все set_access_token/set_nginx_token (кроме обнуления) на эту функцию 2.0message )jsonrpcresultcallidAUTH_SESSION_COOKIE_DOMAINaccess_tokenNoner   domainexpiresnginx_auth_token)r   r   )r   r   )r   
isinstancestrjsonifygetattrconfigrequesthostr   r   _set_access_token_set_nginx_token
set_cookie)selfresponseauthr   r   r   r   r   _ok   sB    
 
        zResponseMixin._okc                 C   sF   |j d| jtjd df|tj tjtjtj d d| d S )Nr      daysr   )r'   rsa_sign_pack_jwtr   token_ttl_daysdatetimenow	timedeltaprolong_days)r*   r)   r   r   r   r   r   r%   -   s    
	zResponseMixin._set_access_tokenc                 C   s.   | j d|tj tjtjd d| d S )Nr   password123r-   r   )r   r5   )r'   r1   r2   r3   r   r0   )r)   r   r   r   r   r   r&   ;   s      zResponseMixin._set_nginx_tokenc                 K   sf   t | td td| td| td| |r6|S d||ddd}|d	rb|d	 |d
 d	< |S )NzError happened: zcode=zmessage=z	response=r   )coder   r   )r   errorr   Zproblem_fieldr7   )r   printget)r(   r6   r   r)   kwargsr   r   r   r   _errorE   s    



zResponseMixin._error)N)N)__name__
__module____qualname__r0   r4   staticmethodr   r+   r%   r&   r;   r   r   r   r   r      s   



	r   )r1   cmf.data_providers.baser   cmf.includeobjectr   r   r   r   r   <module>   s   