
    wg0                     Z   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZmZ d dlmZmZmZmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z#m$Z$m%Z% d dl&m'Z'  G d de'ee!          Z( G d de'ee!          Z) G d de'          Z* G d de          Z+dS )    )Any)logout)HttpRequestHttpResponseJsonResponse)redirectrender)View)Loginget_login_interactor)Registerget_register_interactor)UserCreatingErrorUserDoesNotExistUserWithEmailAlreadyExistsUserWithPhoneAlreadyExists)UserRepositoryInterface)get_user_repository)RequestInterface)FormView)StylesMixin)	LoginFormRegistrationFormResetPasswordForm)BaseUserViewc                   p     e Zd ZU dZeZ e            Zee	d<   de
eef         f fdZdededefdZ xZS )RegisterUserzuser/register.htmlregister_interactorreturnc                      t                      j        di ||                                 z  }t                      |d<   |S )Nregister_form )superget_context_dataget_styles_contextr   selfkwargscontext	__class__s      (/var/www/html/cms/web/user/views/auth.pyr$   zRegisterUser.get_context_data   sE    *%''*44V44t7N7N7P7PP#3#5#5     requestformc           	      \   |j                             d          }|j                             dd          dk    }d }	 |                     |j                            d          |j                            d          |j                            d                    j        }nW# t          $ r*}t          dt          |          id	
          cY d }~S d }~wt          $ r}|
                    dt          |                     |sd| dnRd|j                            d           d|j                            d           d|j                            d           }Y d }~nd }~wt          $ r}|
                    dt          |                     |sd| dnRd|j                            d           d|j                            d           d|j                            d           }Y d }~nd }~ww xY w|r.|                     ||           t          d|j        id	
          S |sd| dnSd|j                            d           d|j                            d           d|j                            d           d}|                     ||           t          d|i          S )Nancoris_popupfalseemailphoneHTTP_ORIGIN)r3   r4   hosterrors  statusu3   Ошибка регистрации в форме ""u5   Ошибка регистрации в попапе "usernamez", "u&   Регистрация в форме "u(   Регистрация в попапе "token_to_set_password)POSTgetr   cleaned_dataMETAr=   r   r   strr   	add_errorr   create_user_session_logr7   )r'   r-   r.   r0   r1   user_activity_textr=   es           r+   
form_validzRegisterUser.form_valid%   s
     ))<##J88GC!	$($<$<'++G44'++G44\%%m44 %= % % $	 "!
 ! 	@ 	@ 	@3q66 23?????????) 	 	 	NN7CFF+++  }RRRRR }tO`OdOdeoOpOp  }  }vz  wH  wL  wL  MT  wU  wU  }  }  [_  [l  [p  [p  qx  [y  [y  }  }  * 	 	 	NN7CFF+++  }RRRRR }tO`OdOdeoOpOp  }  }vz  wH  wL  wL  MT  wU  wU  }  }  [_  [l  [p  [p  qx  [y  [y  }  } 	  	E((2DEEE4; 7DDDD mAuAAAA md>O>S>ST^>_>_  m  meievezez  |C  fD  fD  m  m  JN  J[  J_  J_  `g  Jh  Jh  m  m  m 	 	$$W.@AAA46KLMMMs8   A%B$ $
G8.CG8G8 A>E##G80A>G33G8)__name__
__module____qualname__template_namer   
form_classr   r   r   __annotations__dictrB   r   r$   r   r   rG   __classcell__r*   s   @r+   r   r      s         (M!J$;$;$=$====DcN      -N"2 -N:J -N| -N -N -N -N -N -N -N -Nr,   r   c                   p     e Zd ZU dZeZ e            Zee	d<   de
eef         f fdZdededefdZ xZS )	LoginViewzuser/login.htmllogin_interactorr   c                      t                      j        di ||                                 z  }t                      |d<   t	                      |d<   t                      |d<   |S )N
login_formr!   reset_password_formr"   )r#   r$   r%   r   r   r   r&   s      r+   r$   zLoginView.get_context_dataZ   sd    *%''*44V44t7N7N7P7PP )#3#5#5 ):)<)<%&r,   r-   r.   c                    	  | j         d
i |j        \  }}|                     |           |                     |d|j                            d           d           t          d|i          S # t          $ rx}|                    dt          |                     |                     |d|j                            d           d           t          d|j	        id	          cY d }~S d }~ww xY w)Nu   Вход в ЛК "phone_or_emailr;   )textacess_tokenu!   Ошибка входа в ЛК "r7   r8   r9   r"   )
rS   r@   loginrD   r?   r   r   rC   rB   r7   )r'   r-   r.   access_tokenuserrF   s         r+   rG   zLoginView.form_validb   s-   	E!6!6!K!K9J!K!KL$JJt((7zdN_NcNcdtNuNu7z7z7z({{{ =>>> 	E 	E 	ENN+SVV444((pDDUDYDYZjDkDkppp )     4; 7DDDDDDDDD	Es   A-A0 0
C2:A-C-'C2-C2)rH   rI   rJ   rK   r   rL   r   rS   r   rM   rN   rB   r   r$   r   r   rG   rO   rP   s   @r+   rR   rR   U   s         %MJ2244e444DcN      A"2 A) A A A A A A A A Ar,   rR   c                   F    e Zd ZU dZ e            Zeed<   dede	de
fdZdS )SetTokenuser/set-token.htmluser_repositoryr-   tokenr   c                     | j                             |          }|rK| j                            |d                   }|r|                     |           t          |dd|i          S t          d          S )Nid)rd   r`   rb   i  r9   )jwt_processorvalidate_tokenra   r?   r[   r	   r   )r'   r-   rb   payloadr]   s        r+   r?   zSetToken.getz   s    $33E:: 	L'++wt}+==D !

4   '#87E:JKKK3''''r,   N)rH   rI   rJ   rK   r   ra   r   rM   r   rB   r   r?   r"   r,   r+   r_   r_   v   s^         )M/B/B/D/DO,DDD	(; 	(s 	(| 	( 	( 	( 	( 	( 	(r,   r_   c                       e Zd ZdefdZdS )Logoutr-   c                 >    t          |           t          d          S )N/)r   r   )r'   r-   s     r+   r?   z
Logout.get   s    w}}r,   N)rH   rI   rJ   r   r?   r"   r,   r+   ri   ri      s/        ;      r,   ri   N),typingr   django.contrib.authr   django.httpr   r   r   django.shortcutsr   r	   django.views.genericr
   application.usecases.auth.loginr   r   "application.usecases.auth.registerr   r   domain.user.exceptionsr   r   r   r   domain.user.repositoryr   7infrastructure.persistence.repositories.user_repositoryr   )infrastructure.requests.request_interfacer   web.common.viewsr   web.styles.viewsr   web.user.formsr   r   r   web.user.views.base_user_viewr   r   rR   r_   ri   r"   r,   r+   <module>r{      s5         & & & & & & ? ? ? ? ? ? ? ? ? ? - - - - - - - - % % % % % % G G G G G G G G P P P P P P P P            ; : : : : : W W W W W W F F F F F F % % % % % % ( ( ( ( ( ( I I I I I I I I I I 6 6 6 6 6 69N 9N 9N 9N 9N<; 9N 9N 9NxA A A A Ah A A AB( ( ( ( (| ( ( (     T     r,   