
    R1i9                        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mZ d dlmZ d Zd	 Z G d
 dej$                        Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Z G d" d#e      Zy$)%    )settings)get_version_tuple)serializers)SimpleJWTSchemeTokenRefreshSerializerExtension)warn)OpenApiSerializerExtensionOpenApiViewExtension)extend_schemac                 r    ddl m} t        |      dk  rddlm} t        ||       S ddlm} t        ||      S )Nr   __version__   r   r   )app_settingsapi_settings)dj_rest_auth.__version__r   r   dj_rest_authr   getattrdj_rest_auth.app_settingsr   )
class_namesetting_namer   r   r   s        e/home/cursorai/projects/iching/venv/lib/python3.12/site-packages/drf_spectacular/contrib/rest_auth.pyget_dj_rest_auth_settingr      s2    4%	1-|Z00:|\22    c                      ddl m}  t        |       dk  rt        t        dd      }nddlm} |j                  }|rt        dd      S t        d	d
      S )Nr   r   r   REST_USE_JWTFr   JWTSerializerJWT_SERIALIZERTokenSerializerTOKEN_SERIALIZER)	r   r   r   r   r   r   r   USE_JWTr   )r   use_jwtr   s      r   get_token_serializer_classr%      sN    4%	1(NE::&&'9IJJ'(9;MNNr   c                   4    e Zd Z ej                  dd      Zy)RestAuthDetailSerializerTF)	read_onlyrequiredN)__name__
__module____qualname__r   	CharFielddetail r   r   r'   r'   *   s    "[""TEBFr   r'   c                       e Zd Zd Zy)RestAuthDefaultResponseViewc                 0     G d d| j                         }|S )Nc                   *    e Zd Z ee      d        Zy);RestAuthDefaultResponseView.view_replacement.<locals>.Fixed	responsesc                      y Nr/   selfrequestargskwargss       r   postz@RestAuthDefaultResponseView.view_replacement.<locals>.Fixed.post1       r   N)r*   r+   r,   r   r'   r>   r/   r   r   Fixedr4   0   s    %=> ?r   r@   target_classr:   r@   s     r   view_replacementz,RestAuthDefaultResponseView.view_replacement/       	D%% 	
 r   N)r*   r+   r,   rD   r/   r   r   r1   r1   .   s    r   r1   c                       e Zd ZdZd Zy)RestAuthLoginViewzdj_rest_auth.views.LoginViewc                 0     G d d| j                         }|S )Nc                   4    e Zd Z e e             d        Zy)1RestAuthLoginView.view_replacement.<locals>.Fixedr5   c                      y r8   r/   r9   s       r   r>   z6RestAuthLoginView.view_replacement.<locals>.Fixed.post=   r?   r   N)r*   r+   r,   r   r%   r>   r/   r   r   r@   rJ   <   s    %?%AB Cr   r@   rA   rC   s     r   rD   z"RestAuthLoginView.view_replacement;   rE   r   Nr*   r+   r,   rB   rD   r/   r   r   rG   rG   8   s    1Lr   rG   c                       e Zd ZdZd Zy)RestAuthLogoutViewzdj_rest_auth.views.LogoutViewc                 r    t        t        dd       r	dt        inddi G fdd| j                        }|S )NACCOUNT_LOGOUT_ON_GETr6   excludeTc                   L    e Zd Z edi W  d        Z ede      d        Zy)2RestAuthLogoutView.view_replacement.<locals>.Fixedc                      y r8   r/   r9   s       r   getz6RestAuthLogoutView.view_replacement.<locals>.Fixed.getN   r?   r   N)r;   r6   c                      y r8   r/   r9   s       r   r>   z7RestAuthLogoutView.view_replacement.<locals>.Fixed.postR   r?   r   r/   )r*   r+   r,   r   rU   r'   r>   )get_schema_paramss   r   r@   rS   M   s;    /./ 0 43KL Mr   r@   )r   r   r'   rB   )r:   r@   rW   s     @r   rD   z#RestAuthLogoutView.view_replacementG   s@    84d;!,.F G!*D 1	D%% 	 r   NrL   r/   r   r   rN   rN   D   s    2Lr   rN   c                       e Zd ZdZy)RestAuthPasswordChangeViewz%dj_rest_auth.views.PasswordChangeViewNr*   r+   r,   rB   r/   r   r   rY   rY   Y   s    :Lr   rY   c                       e Zd ZdZy)RestAuthPasswordResetViewz$dj_rest_auth.views.PasswordResetViewNrZ   r/   r   r   r\   r\   ]   s    9Lr   r\   c                       e Zd ZdZy) RestAuthPasswordResetConfirmViewz+dj_rest_auth.views.PasswordResetConfirmViewNrZ   r/   r   r   r^   r^   a   s    @Lr   r^   c                       e Zd ZdZdZy)RestAuthVerifyEmailViewz/dj_rest_auth.registration.views.VerifyEmailViewTNr*   r+   r,   rB   optionalr/   r   r   r`   r`   e   s    DLHr   r`   c                       e Zd ZdZdZy)#RestAuthResendEmailVerificationViewz;dj_rest_auth.registration.views.ResendEmailVerificationViewTNra   r/   r   r   rd   rd   j   s    PLHr   rd   c                       e Zd ZdZd Zy)RestAuthJWTSerializerz&dj_rest_auth.serializers.JWTSerializerc                 P     G d d| j                         }|j                  ||      S )Nc                   (    e Zd Z  edd             Zy)3RestAuthJWTSerializer.map_serializer.<locals>.FixedUserDetailsSerializerUSER_DETAILS_SERIALIZERN)r*   r+   r,   r   userr/   r   r   r@   ri   s   s    _+,CE^_aDr   r@   )rB   _map_serializer)r:   auto_schema	directionr@   s       r   map_serializerz$RestAuthJWTSerializer.map_serializerr   s+    	bD%% 	b **5)<<r   N)r*   r+   r,   rB   rp   r/   r   r   rf   rf   o   s    ;L=r   rf   c                       e Zd ZdZdZd Zy)%CookieTokenRefreshSerializerExtensionz2dj_rest_auth.jwt_auth.CookieTokenRefreshSerializerTc                      y)NTokenRefreshr/   )r:   s    r   get_namez.CookieTokenRefreshSerializerExtension.get_name}   s    r   N)r*   r+   r,   rB   rb   ru   r/   r   r   rr   rr   y   s    GLHr   rr   c                       e Zd ZdZdZd Zy)RestAuthRegisterViewz,dj_rest_auth.registration.views.RegisterViewTc                     ddl m}m} ||j                  k(  rt        n
t                G fdd| j                        }|S )Nr   )EMAIL_VERIFICATIONEmailVerificationMethodc                   .    e Zd Z eW        d        Zy)4RestAuthRegisterView.view_replacement.<locals>.Fixedr5   c                      y r8   r/   r9   s       r   r>   z9RestAuthRegisterView.view_replacement.<locals>.Fixed.post   r?   r   N)r*   r+   r,   r   r>   )response_serializers   r   r@   r|      s    %89 :r   r@   )allauth.account.app_settingsry   rz   	MANDATORYr'   r%   rB   )r:   ry   rz   r@   r~   s       @r   rD   z%RestAuthRegisterView.view_replacement   s=    \!8!B!BB":"<">	D%% 	
 r   N)r*   r+   r,   rB   rb   rD   r/   r   r   rw   rw      s    ALHr   rw   c                   4     e Zd ZdZdZddgZd Z fdZ xZS )SimpleJWTCookieSchemez-dj_rest_auth.jwt_auth.JWTCookieAuthenticationTjwtHeaderAuthjwtCookieAuthc                 D    | j                   D cg c]  }|g i c}S c c}w r8   )name)r:   rn   r   s      r   get_security_requirementz.SimpleJWTCookieScheme.get_security_requirement   s"    '+yy1ytr
y111s   c                 j    t        dd      }|sd}t        d|        t        |   |      dd|dgS )NJWT_AUTH_COOKIEzjwt-authzN"JWT_AUTH_COOKIE" setting required for JWTCookieAuthentication. defaulting to apiKeycookie)typeinr   )r   r   superget_security_definition)r:   rn   cookie_name	__class__s      r   r   z-SimpleJWTCookieScheme.get_security_definition   sW    ./@BST$K!!,/ G+K8 #
 	
r   )	r*   r+   r,   rB   rb   r   r   r   __classcell__)r   s   @r   r   r      s&    BLH_-D2
 
r   r   N) django.confr   django.utils.versionr   rest_frameworkr   0drf_spectacular.contrib.rest_framework_simplejwtr   r   drf_spectacular.drainager   drf_spectacular.extensionsr	   r
   drf_spectacular.utilsr   r   r%   
Serializerr'   r1   rG   rN   rY   r\   r^   r`   rd   rf   rr   rw   r   r/   r   r   <module>r      s      2 & * W /
3O C{55 C"6 	, 	- *;!< ;: ; :A'B A9 
*E 
=6 =,K / (
O 
r   