
    wg                     f   d dl mZ d dlmZmZ d dlmZ d dl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 d dlmZ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#  G d de          Z$ G d de          Z% G d d          Z& G d de          Z' G d dej(                  Z)dS )    )Any)authenticatelogin)LoginRequiredMixin)HttpRequestHttpResponseHttpResponseRedirect)View)generics)DomainRepositoryInterface)UserInterface)get_jwt_processor)JwtProcessorInterface)CreateUserSesssionLogget_create_user_session_log)get_domain_repository)FeedbackForm)SettingsMixin)	LoginFormRegistrationFormResetPasswordFormc                   d    e Zd ZU  e            Zeed<   dZdZ e	            Z
eed<   deddfdZdS )	BaseUserViewjwt_processor/user/loginz/my/create_user_session_loguserreturnNc                 p    || j         _        t          | j                   }t          | j         |           d S N)requestr   r   r   )selfr   s     2/var/www/html/cms/web/user/views/base_user_view.pyr   zBaseUserView.login   s3     DL))dlD!!!!!    )__name__
__module____qualname__r   r   r   __annotations__	login_urlaccount_urlr   r   r   r   r    r$   r#   r   r      sw         +<+<+>+>M(>>>IK5P5P5R5R2RRR"- "D " " " " " "r$   r   c                   L     e Zd ZU dZdZ e            Zeed<   de	f fdZ
 xZS )MyLoginRequiredMixinr   z/user/passworddomain_repositoryr!   c                    |j         j        s|                                 S |j         j        s|                                 S |                                }| j                                        }|j        |v r7|                    |                                |          }t          |          S |j         j
        |j         j
        st          | j                  S  t                      j        |g|R i |S r    )r   is_authenticatedhandle_no_permissionbuild_absolute_urir.   get_domain_stringpartner_domainreplaceget_hostr	   passwordset_password_urlsuperdispatch)r"   r!   argskwargspathdomain_string	__class__s         r#   r:   zMyLoginRequiredMixin.dispatch*   s    |, 	/,,...|, 	/,,...))++.@@BB!T))<< 0 0 2 2MBBD'---< (0E('(=>>>uww9$999&999r$   )r%   r&   r'   r)   r8   r   r.   r   r(   r   r:   __classcell__r?   s   @r#   r-   r-   %   sl         I'3H3H3J3J0JJJ: : : : : : : : : : :r$   r-   c                   :    e Zd Zedeeef         fd            ZdS )UserFormsViewr   c                 p    t                      t                      t                      t                      dS )N)
login_formregister_formreset_password_formfeedback_form)r   r   r   r   )r"   s    r#   get_context_datazUserFormsView.get_context_dataA   s3     $++-//#4#6#6)^^	
 
 	
r$   N)r%   r&   r'   classmethoddictstrr   rI   r+   r$   r#   rC   rC   @   sA        
$sCx. 
 
 
 [
 
 
r$   rC   c                   $     e Zd Zdef fdZ xZS )APIUserRequiredr!   c                 v    |j         j        st          d          S  t                      j        |g|R i |S Ni  )statusr   r0   r   r9   r:   r"   r!   r;   r<   r?   s       r#   r:   zAPIUserRequired.dispatchL   H    |, 	,s++++uww9$999&999r$   r%   r&   r'   r   r:   r@   rA   s   @r#   rN   rN   K   D        : : : : : : : : : : :r$   rN   c                   $     e Zd Zdef fdZ xZS )APIUserRequiredGenericsr!   c                 v    |j         j        st          d          S  t                      j        |g|R i |S rP   rR   rS   s       r#   r:   z APIUserRequiredGenerics.dispatchT   rT   r$   rU   rA   s   @r#   rX   rX   S   rV   r$   rX   N)*typingr   django.contrib.authr   r   django.contrib.auth.mixinsr   django.httpr   r   r	   django.views.genericr
   rest_frameworkr    domain.domains.domain_repositoryr   domain.user.entitiesr   !infrastructure.auth.jwt_processorr   +infrastructure.auth.jwt_processor_interfacer   7infrastructure.logging.user_activity.create_session_logr   r   9infrastructure.persistence.repositories.domain_repositoryr   web.common.formsr   !web.settings.views.settings_mixinr   web.user.formsr   r   r   r   r-   rC   rN   GenericAPIViewrX   r+   r$   r#   <module>rj      s3         3 3 3 3 3 3 3 3 9 9 9 9 9 9 G G G G G G G G G G % % % % % % # # # # # # F F F F F F . . . . . . ? ? ? ? ? ? M M M M M M             * ) ) ) ) ) ; ; ; ; ; ; I I I I I I I I I I	" 	" 	" 	" 	"= 	" 	" 	": : : : :- : : :6
 
 
 
 
 
 
 
: : : : :d : : :: : : : :h5 : : : : :r$   