U
    Ef]                     @   s.   d dl T d dlmZ G dd dejjeZdS )    )*)ResponseMixinc                   @   s`   e Zd ZdZejjdd Zejjdd Zejjdd Z	ejjdd	 Z
ejjd
d ZdS )TwoFactorViewz/two-factorc                 C   sR   t jddddddg t jjjsHt jjjsHt jjjsHt jj}| dS | dS )	Ntwo_factor.phone_verifiedtwo_factor.email_verifiedtwo_factor.application_verifiedtwo_factor.applicationtwo_factor.phonetwo_factor.emailztwo_factor_settings.htmlztwo_factor.html)gcurrent_personload_fields
two_factorphone_verifiedemail_verifiedapplication_verifiedZrender)selfr    r   "./modules/auth/views/two_factor.pyget   s    
  

zTwoFactorView.getc                 C   s,   t j  t jr| dt jS | dt jS )Nfailok)r   sessionZtfa_send_codeZalert_error_okauthr   r   r   r   	send_code   s    
zTwoFactorView.send_codec              
   C   s   z@t jtjd tjdr.| dt jW S | dt jW S W n> tk
r~ } z t	  | t
|t j W Y S d }~X Y nX d S )Ncodemethodr   r   )r   r   Ztfa_check_coderequestjsonr   r   r   	ExceptionZrollback_purge_eventstr)r   er   r   r   
check_code   s    zTwoFactorView.check_codec                 C   s   t jddddddg t jjjs6t jjjs6t jjjrB| ddS tj	
d	r`tj	
d	t jj_tj	
d
r~tj	
d
t jj_tj	
drtj	
dt jj_t jj  | dt jS )Nr   r   r   r   r	   r
   r   uK   Двухфакторная авторизация уже настроенаphoneemailapplicationr   )r   r   r   r   r   r   r   r   r    r!   r   r&   r'   r(   Zsaver   r   r   r   r   r   
update_2fa'   s     
  zTwoFactorView.update_2fac                 C   s2   t jddg t jjjr&| ddS t jj S )Nr   r   r   u0   Приложение уже подключено)r   r   r   r   r   r   Ztopt_qrcoder   r   r   r   
qrcode_2fa7   s    
zTwoFactorView.qrcode_2faN)__name__
__module____qualname__Z__url__cmfviewsactionr   r   r%   r)   r*   r   r   r   r   r      s   




r   N)Zcmf.includeZmodules.auth.views.responser   r.   r/   ZBaseViewr   r   r   r   r   <module>   s   