
    f                         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 d dlmZmZmZ d d	lmZ d d
lmZ ddZ G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zy)    )REDIRECT_FIELD_NAME)ImproperlyConfigured)HttpResponsePermanentRedirectHttpResponseRedirect)format_html)app_settings)get_adapter)flows)get_login_redirect_urlget_next_redirect_urlpassthrough_next_redirect_url)ImmediateHttpResponse)get_request_paramNc                     t               }|j                  |       r>t        |t              st        |t              r|d   }nd }|j                  | ||||      }|S )NLocation)formdataredirect_to)r	   is_ajax
isinstancer   r   ajax_response)requestresponser   r   adapterr   s         Q/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/account/mixins.py_ajax_responser      se    mGwh 453:
 #:.KK((XDt ) 
 O    c                   $     e Zd Z fdZd Z xZS )RedirectAuthenticatedUserMixinc                     |j                   j                  r7t        j                  r'| j	                         }t        |      }t        ||      S t        |    |g|i |}|S N)	useris_authenticatedr   AUTHENTICATED_LOGIN_REDIRECTSget_authenticated_redirect_urlr   r   superdispatch)selfr   argskwargsr   r   	__class__s         r   r'   z'RedirectAuthenticatedUserMixin.dispatch"   s[    <<((\-W-W==?K+K8H!'844w'A$A&AHr   c                 f    | j                   }t        | j                  | j                         |      S )N)urlredirect_field_name)r.   r   r   get_success_url)r(   r.   s     r   r%   z=RedirectAuthenticatedUserMixin.get_authenticated_redirect_url+   s1    "66%LL$$& 3
 	
r   )__name__
__module____qualname__r'   r%   __classcell__r+   s   @r   r   r   !   s    
r   r   c                       e Zd Zd Zy)LogoutFunctionalityMixinc                 V    t         j                  j                  | j                         y r!   )r
   logoutr   r(   s    r   r8   zLogoutFunctionalityMixin.logout5   s    DLL)r   N)r0   r1   r2   r8    r   r   r6   r6   4   s    *r   r6   c                   <     e Zd Z fdZd Zd fd	Zd Zd Z xZS )AjaxCapableProcessFormViewMixinc                     t        |   |g|i |}| j                         }t        | j                  ||| j                               S N)r   r   )r&   getget_formr   r   _get_ajax_data_if)r(   r   r)   r*   r   r   r+   s         r   r?   z#AjaxCapableProcessFormViewMixin.get:   sI    7;w888}}LL(D4J4J4L
 	
r   c                     | j                         }| j                  |      }|j                         r| j                  |      }n| j	                  |      }t        | j                  ||| j                               S r>   )get_form_classr@   is_valid
form_validform_invalidr   r   rA   )r(   r   r)   r*   
form_classr   r   s          r   postz$AjaxCapableProcessFormViewMixin.postA   sh    ((*
}}Z(==?t,H((.HLL(D4J4J4L
 	
r   c                 R    t        | dd       }|t        | 	  |      }|| _        |S )N_cached_form)getattrr&   r@   rJ   )r(   rG   r   r+   s      r   r@   z(AjaxCapableProcessFormViewMixin.get_formL   s2    t^T2<7#J/D $Dr   c                     t        | j                        j                  | j                        r| j                         S d S r!   )r	   r   r   get_ajax_datar9   s    r   rA   z1AjaxCapableProcessFormViewMixin._get_ajax_data_ifS   s<     4<<(00>  	
 	
r   c                      y r!   r:   r9   s    r   rM   z-AjaxCapableProcessFormViewMixin.get_ajax_dataZ       r   r!   )	r0   r1   r2   r?   rH   r@   rA   rM   r3   r4   s   @r   r<   r<   9   s    
	

r   r<   c                   H     e Zd Zdej                  z   Z fdZd Zd Z xZ	S )CloseableSignupMixinzaccount/signup_closed.c                     	 | j                         s| j                         S 	 t	        |   |g|i |S # t        $ r}|j                  cY d }~S d }~ww xY wr!   )is_openclosedr   r   r&   r'   )r(   r   r)   r*   er+   s        r   r'   zCloseableSignupMixin.dispatchc   sZ    	<<>{{}$ " w9$9&99 % 	::	s   7 	A AAAc                 ^    t        | j                        j                  | j                        S r!   )r	   r   is_open_for_signupr9   s    r   rS   zCloseableSignupMixin.is_openk   s     4<<(;;DLLIIr   c                 X    | j                   | j                  d} | j                  di |S )N)r   templater:   )r   template_name_signup_closedresponse_class)r(   response_kwargss     r   rT   zCloseableSignupMixin.closedn   s1    ||88
 #t""5_55r   )
r0   r1   r2   r   TEMPLATE_EXTENSIONrZ   r'   rS   rT   r3   r4   s   @r   rQ   rQ   ^   s&     <#B#BB  :J6r   rQ   c                   >     e Zd ZeZ fdZ fdZd Zd Zd Z	 xZ
S )NextRedirectMixinc           	          t        |   di |}t        | j                  | j                        }|j                  | j                  ||rt        d| j                  |      ndd       |S )Nz*<input type="hidden" name="{}" value="{}"> )r.   redirect_field_valueredirect_fieldr:   )r&   get_context_datar   r   r.   updater   )r(   r*   retrb   r+   s       r   rd   z"NextRedirectMixin.get_context_datay   ss    g&000t?W?WX

'+'?'?(< ,  D00, 	
 
r   c                    | j                         }|r|S |sIt        t               d      r	 t        |          }n%t        | d      r| j
                  }|rt        |      }|s| j                         }|S # t        $ r Y w xY w)a^  
        We're in a mixin, so we cannot rely on the fact that our super() has a get_success_url.
        Also, we want to check for -- in this order:
        1) The `?next=/foo`
        2) The `get_succes_url()` if available.
        3) The `.success_url` if available.
        4) A fallback default success URL: `get_default_success_url()`.
        r/   success_url)get_next_urlhasattrr&   r/   r   rh   strget_default_success_url)r(   r-   r+   s     r   r/   z!NextRedirectMixin.get_success_url   s     !Juw 12'13C }-&&c(C..0C
 ,  	s   A5 5	B Bc                      y r!   r:   r9   s    r   rl   z)NextRedirectMixin.get_default_success_url   rO   r   c                 B    t        | j                  | j                        S r!   )r   r   r.   r9   s    r   ri   zNextRedirectMixin.get_next_url   s    $T\\43K3KLLr   c                 D    t        | j                  || j                        S r!   )r   r   r.   )r(   r-   s     r   passthrough_next_urlz&NextRedirectMixin.passthrough_next_url   s     ,LL#t77
 	
r   )r0   r1   r2   r   r.   rd   r/   rl   ri   rp   r3   r4   s   @r   r_   r_   v   s#    -(<M
r   r_   )NN)django.contrib.authr   django.core.exceptionsr   django.httpr   r   django.utils.htmlr   allauth.accountr   allauth.account.adapterr	   allauth.account.internalr
   allauth.account.utilsr   r   r   allauth.core.exceptionsr   allauth.utilsr   r   r   r6   r<   rQ   r_   r:   r   r   <module>r{      sd    3 7 K ) ( / * 
 : +
 
&* *
" "J6 60>
 >
r   