U
    -d                     @   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.1Z	localhostTZlax)ZsecureZhttponlyZsamesite)dict)cookie_domaincookie_kwargs r
    ./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callidZAUTH_SESSION_COOKIE_DOMAINaccess_tokenNoner   domainZexpiresnginx_auth_token)r   r   )r   r   )r   
isinstancestrZjsonifygetattrZconfigZrequestZ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      Zdaysr   )r   Z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   r)   )r   r%   r&   r'   r   r$   )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_fieldr+   )r   printget)r   r*   r   r   kwargsr   r
   r
   r   _errorE   s    



zResponseMixin._error)N)N)__name__
__module____qualname__r$   r(   staticmethodr   r!   r   r   r/   r
   r
   r
   r   r      s   



	r   )r%   Zcmf.data_providers.baser   Zcmf.includeobjectr   r
   r
   r
   r   <module>   s   