
    f_              
          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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 d dlmZ d dl mZ d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@ d dlAmBZBmCZCmDZDmEZEmFZF d dlGmHZH d dlImJZJ d dlKmLZL d dlMmNZN d dlOmPZP dZQ e edddd            ZR e eNd !      d"#       G d$ d%e6e7e3e             ZSeSj                         ZU e eNd&!      d"#       G d' d(e7e4e6e3e             ZVeVj                         ZW G d) d*e6e5e      ZXeXj                         ZY eed"#       e eNd+!      d"#       G d, d-e3e                    ZZeZj                         Z[ eed"#       e eNd.!      d"#       G d/ d0e3e6e                    Z\e\j                         Z] eed"#       e eNd.!      d"#       G d1 d2e3e6e                    Z^e^j                         Z_ G d3 d4e6e3e      Z`e`j                         Za G d5 d6e      Zbebj                         Zc e eNd7!      d"#       G d8 d9e3e6e5e             Zdedj                         Ze G d: d;e      Zfefj                         Zg G d< d=e6e5e      Zhehj                         Zi G d> d?e      Zjejj                         Zk G d@ dAe      Zl G dB dCe      ZmdD Zn G dE dFe6e      Zo eed"#       G dG dHeo             Zpepj                         Zq G dI dJe7e6e      Zrerj                         Zs G dK dLe7e6e      Ztetj                         ZuyM)N    )messages)login_required)get_current_site)PermissionDenied)validate_email)ValidationError)Http404HttpResponseHttpResponseRedirect)reversereverse_lazy)method_decorator)never_cache)sensitive_post_parameters)TemplateView)FormViewapp_settings)get_adapter)AddEmailFormChangePasswordForm ConfirmEmailVerificationCodeFormConfirmLoginCodeForm	LoginFormReauthenticateFormRequestLoginCodeFormResetPasswordFormResetPasswordKeyFormSetPasswordForm
SignupFormUserTokenForm)flows)AjaxCapableProcessFormViewMixinCloseableSignupMixinLogoutFunctionalityMixinNextRedirectMixinRedirectAuthenticatedUserMixin_ajax_response)EmailAddressEmailConfirmationget_emailconfirmation_model)EmailVerificationStageLoginByCodeStageLoginStageController)complete_signupperform_loginsend_email_confirmationsync_user_email_addressesuser_display)	ratelimit)ImmediateHttpResponse)redirect)
rate_limit)get_form_class_password_reset_keyoldpasswordpassword	password1	password2login)actiondispatch)namec                        e Zd ZeZdej                  z   ZdZe	 e
e       fd              Z fdZd Zd Z fdZ xZS )	LoginViewzaccount/login.Nc                 |    t         j                  r|j                  dk7  r
t               t	        |   |g|i |S )NGET)allauth_app_settingsSOCIALACCOUNT_ONLYmethodr   superr@   selfrequestargskwargs	__class__s       P/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/account/views.pyr@   zLoginView.dispatchT   s<      22w~~7N"$$w9$9&99    c                 B    t         |          }| j                  |d<   |S )NrL   )rI   get_form_kwargsrL   rK   rN   rO   s     rP   rS   zLoginView.get_form_kwargs[   s#    (* LLyrQ   c                 L    t        t        j                  d| j                        S )Nr>   r8   r   FORMS
form_classrK   s    rP   r8   zLoginView.get_form_class`   s    l00'4??KKrQ   c                     | j                         }	 |j                  | j                  |      S # t        $ r}|j                  cY d }~S d }~ww xY w)N)redirect_url)get_success_urlr>   rL   r5   response)rK   formr[   es       rP   
form_validzLoginView.form_validc   sF    ++-	::dll:FF$ 	::	s   / 	AA	A	Ac           	         d}t         j                  rddlm} |j                  }t        |   di |}d }t         j                  s| j                  t        d            }t        | j                        }|j                  ||t         j                  t         j                  t        j                  |d       t        j                  r| j                  t        d            }||d<   |S )	NFr   r   account_signup)
signup_urlsiteSOCIALACCOUNT_ENABLEDrG   LOGIN_BY_CODE_ENABLEDPASSKEY_LOGIN_ENABLEDaccount_request_login_coderequest_login_code_url )rF   MFA_ENABLEDallauth.mfar   rg   rI   get_context_datarG   passthrough_next_urlr   r   rL   updatere   rf   )	rK   rN   passkey_login_enabledmfa_settingsretrc   rd   ri   rO   s	           rP   rm   zLoginView.get_context_dataj   s     %++@$0$F$F!g&00
#66227;K3LMJ-

()=)S)S&:&M&M)5)K)K)>		
 --%)%>%>45&" -CC()
rQ   )__name__
__module____qualname__r   rX   r   TEMPLATE_EXTENSIONtemplate_namesuccess_urlsensitive_post_parameters_mr   r   r@   rS   r8   r`   rm   __classcell__rO   s   @rP   rC   rC   I   sX     J$|'F'FFMK k": # !:

L rQ   rC   signupc                        e Zd Zdej                  z   ZeZe e	e
       fd              Zd Zd Z fdZ fdZ xZS )
SignupViewzaccount/signup.c                 *    t        |   |g|i |S NrI   r@   rJ   s       rP   r@   zSignupView.dispatch   s     w9$9&99rQ   c                 L    t        t        j                  d| j                        S )Nr|   rV   rY   s    rP   r8   zSignupView.get_form_class   s    l00(DOOLLrQ   c                     |j                  | j                        \  | _        }|r|S 	 | j                         }t	        | j                  | j                  d |      S # t
        $ r}|j                  cY d }~S d }~ww xY w)N)email_verificationrx   )try_saverL   userr\   r/   r5   r]   )rK   r^   respr[   r_   s        rP   r`   zSignupView.form_valid   sr    --5	4K		//1L"		#'(	  % 	::	s   2A 	A;%A60A;6A;c                    t        	|   di |}|d   }| j                  j                  j	                  d      }|r?dg}t
        j                  r|j                  d       |D ]  }||j                  |   _	         | j                  t        d            }t        | j                        }|j                  ||t        j                  t        j                   d       |S )Nr^   account_verified_emailemailemail2account_login)	login_urlrd   re   rG   rj   )rI   rm   rL   sessiongetr   SIGNUP_EMAIL_ENTER_TWICEappendfieldsinitialrn   r   r   ro   rF   re   rG   )
rK   rN   rr   r^   r   
email_keys	email_keyr   rd   rO   s
            rP   rm   zSignupView.get_context_data   s    g&006{$$(()AB!J44!!(+' 7	16I&.7--go.FG	-

&)=)S)S&:&M&M		
 
rQ   c                     t         |          }| j                  j                  j	                  d      }|r&	 t        |       ||d<   t        j                  r||d<   |S # t        $ r |cY S w xY w)Nr   r   )	rI   get_initialrL   rE   r   r   r   r   r   )rK   r   r   rO   s      rP   r   zSignupView.get_initial   st    '%'  $$W-u%  %GG44$)! # s   A A-,A-)rs   rt   ru   r   rv   rw   r    rX   ry   r   r   r@   r8   r`   rm   r   rz   r{   s   @rP   r~   r~      sS     &(G(GGMJ k": # !:M, rQ   r~   c                   n     e Zd Zdej                  z   Zd Zd Zd Zd Z	ddZ
d Zd Z fd	Zd
 Z xZS )ConfirmEmailViewzaccount/email_confirm.c                    	 | j                         | _        | j                  | j                         t        j                  r | j
                  |i |S 	 | j                         }| j                  s5t               j                  | j                        rt               }d|_        n| j                  |      }t        | j                  || j                               S # t        $ r
 d | _        Y w xY w)Ni  data)
get_objectobjectlogout_other_userr   CONFIRM_EMAIL_ON_GETpostr	   rm   r   is_ajaxrL   r
   status_coderender_to_responser(   get_ajax_data)rK   rM   rN   ctxr   s        rP   r   zConfirmEmailView.get   s    	//+DK""4;;/00 tyy$1&11 1 ##%{{{}44T\\B>D"D**3/DdllDt7I7I7KLL  	DK	s   AC C0/C0c                     | j                   j                  j                  rI| j                   j                  j                  |j                  j
                  k7  r| j                          yyy)z
        In the event someone clicks on an email confirmation link
        for one account while logged into another account,
        logout of the currently logged in account.
        N)rL   r   is_authenticatedpkemail_addressuser_idlogout)rK   confirmations     rP   r   z"ConfirmEmailView.logout_other_user   sO     LL..!!$$(B(B(J(JJKKM K /rQ   c                    | j                         x| _        }t        j                  j	                  | j
                  |      \  }}|r|S |s| j                  d      S | j                  | j                         | j                  d      S )NFT)r   r   r"   r   verify_email_and_resumerL   respondr   )rK   rM   rN   verificationr   r]   s         rP   r   zConfirmEmailView.post   sv    %)__%66l"'":":"R"RLL,#
x O<<&&t{{+||D!!rQ   c                 ~    | j                         }|s!| j                         }| j                  |      S t        |      S r   )get_redirect_urlrm   r   r6   )rK   successr[   r   s       rP   r   zConfirmEmailView.respond   s=    ,,.'')C**3//%%rQ   c                 r    | j                   d   }t               }|j                  |      }|s
t               |S )Nkey)rN   r+   from_keyr	   )rK   querysetr   modelemailconfirmations        rP   r   zConfirmEmailView.get_object  s7    kk% +-!NN3/ )O  rQ   c                 d    t         j                  j                         }|j                  d      }|S )Nemail_address__user)r*   objects	all_validselect_related)rK   qss     rP   get_querysetzConfirmEmailView.get_queryset  s,    &&00245	rQ   c                     dt        | j                        i}| j                  rQ| j                  j                  j                  |d<   dt	        | j                  j                  j
                        i|d<   |S )Ncan_confirmr   displayr   )boolr   r   r   r3   r   )rK   rr   s     rP   r   zConfirmEmailView.get_ajax_data  sa    4,
 ;;;;44::CL$l4;;3L3L3Q3Q&RSCK
rQ   c                 L   t        |   di |}t        | j                        }|j	                  || j
                  | j
                  xr$ | j
                  j                  j                         d       | j
                  r#| j
                  j                  j                  |d<   |S )N)rd   r   r   r   rj   )	rI   rm   r   rL   ro   r   r   can_set_verifiedr   )rK   rN   r   rd   rO   s       rP   rm   z!ConfirmEmailView.get_context_data  s    g&00-

 $#{{  AKK-->>@		
 ;;;;44::CL
rQ   c                     | j                         }|s8t        | j                        j                  | j                  j
                        }|S r   )get_next_urlr   rL   #get_email_verification_redirect_urlr   r   rK   urls     rP   r   z!ConfirmEmailView.get_redirect_url,  s@    !dll+OO))C 
rQ   r   )rs   rt   ru   r   rv   rw   r   r   r   r   r   r   r   rm   r   rz   r{   s   @rP   r   r      sA    ,|/N/NNMM 
"&!
rQ   r   manage_emailc                        e Zd Zej                  rdndej
                  z   ZeZ e	d      Z
d Z fdZ fdZ fdZ fdZd	 Zd
 Zd Zd Z fdZd Zd Z xZS )	EmailViewzaccount/email_change.zaccount/email.account_emailc                 L    t        t        j                  d| j                        S )N	add_emailrV   rY   s    rP   r8   zEmailView.get_form_classA  s    l00+tOOrQ   c                 b    d| _         t        |j                         t        |   |g|i |S )NF)_did_send_verification_emailr2   r   rI   r@   rJ   s       rP   r@   zEmailView.dispatchD  s1    ,1)!',,/w9$9&99rQ   c                 ^    t         t        |          }| j                  j                  |d<   |S Nr   )rI   r   rS   rL   r   rT   s     rP   rS   zEmailView.get_form_kwargsI  s*    y$79**vrQ   c                     t         j                  j                  | j                  |       d| _        t
        |   |      S )NT)r"   r   r   rL   r   rI   r`   rK   r^   rO   s     rP   r`   zEmailView.form_validN  s5    $$T\\48,0)w!$''rQ   c                    d }d|j                   v rt        |   |g|i |}|S |j                   j                  d      rd|j                   v r| j	                  |      }n?d|j                   v r| j                  |      }nd|j                   v r| j                  |      }|xs t        | j                               }t        ||| j                               }|S t        | j                        }t        ||| j                               }|S )N
action_addr   action_sendaction_removeaction_primaryr   )POSTrI   r   r   _action_send_action_remove_action_primaryr   r\   r(   _get_ajax_data_ifrx   )rK   rL   rM   rN   resrO   s        rP   r   zEmailView.postS  s   7<<'',w888C" 
! \\g&,''0 GLL0))'2!W\\1**73E-d.B.B.DEC !#D4J4J4LMC
 
 't'7'78C #D4J4J4LMC
rQ   c                     |j                   d   }	 t        |       	 t        j                  j                  |j                  |      S # t        $ r Y y w xY w# t        j                  $ r Y y w xY w)Nr   )r   r   )r   r   r   r)   r   get_for_userr   DoesNotExist)rK   rL   r   s      rP   _get_email_addresszEmailView._get_email_addressi  so    W%	5!	''44',,e4TT  		 (( 		s"   A *A 	AAA-,A-c                     | j                  |      }|r3t        | j                  |j                  |j                         d| _        t        j                  rt        t        d            S y )N)r   Taccount_email_verification_sent)
r   r1   rL   r   r   r   r   "EMAIL_VERIFICATION_BY_CODE_ENABLEDr   r   rK   rL   rM   rN   r   s        rP   r   zEmailView._action_sendt  s[    //8#gll-2E2E 15D-::'0Q(RSS ;rQ   c                     | j                  |      }|r:t        j                  j                  ||      rt	        | j                               S y y r   )r   r"   r   delete_emailr   r\   r   s        rP   r   zEmailView._action_remove~  sJ    //8!!..wF+D,@,@,BCC G rQ   c                     | j                  |      }|r:t        j                  j                  ||      rt	        | j                               S y y r   )r   r"   r   mark_as_primaryr   r\   r   s        rP   r   zEmailView._action_primary  sJ    //8!!11'=I+D,@,@,BCC J rQ   c                    t        t        | 
  d	i |}t        t        j
                  j                  | j                  j                        j                  d            }|j                  |t        |      D cg c](  \  }}d| |j                  xs t        |      dk(  |d* c}}|j                  d      t        j
                  j                  | j                  j                        d       t         j"                  rv|j                  t        j
                  j%                  | j                  j                        t        j
                  j'                  | j                  j                        d       |S c c}}w )
N)r   r   email_radio_   )idcheckedemailaddressr^   )emailaddressesemailaddress_radiosadd_email_formcan_add_email)new_emailaddresscurrent_emailaddressrj   )rI   r   rm   listr)   r   filterrL   r   order_byro   	enumerateprimarylenr   r   r   CHANGE_EMAILget_newget_verified)rK   rN   rr   emailsir   rO   s         rP   rm   zEmailView.get_context_data  s<   It5??  ''T\\->->'?HHQ
 	

"( %.f$5( !5	 !-QC0#(==#DCK14D(-( #&''&/!-!5!5!C!CDLLDUDU!V	
 $$JJ(4(<(<(D(DT\\EVEV(W,8,@,@,M,M))- 
+(s   ;-E<c                 
   g }| j                   j                  j                  j                         j	                  d      D ]@  }|j                  |j                  |j                  |j                  |j                  d       B |S )Nr   )r   r   verifiedr   )
rL   r   emailaddress_setallr   r   r   r   r  r   )rK   r   r   s      rP   r   zEmailView.get_ajax_data  st     LL-->>BBDMMdS 	LKK&//)// , 5 5+33		 rQ   c                 h    | j                   rt        j                  rt        d      S | j                  S )Nr   )r   r   r   r   rx   rY   s    rP   r\   zEmailView.get_success_url  s,    --??<==rQ   )rs   rt   ru   r   r  rv   rw   r   rX   r   rx   r8   r@   rS   r`   r   r   r   r   r   rm   r   r\   rz   r{   s   @rP   r   r   8  su     $0#<#<BR''(M J/KP:

(
,	TDD> rQ   r   change_passwordc                   t     e Zd Zdej                  z   ZeZd Ze	 fd       Z
 fdZd Z fdZ fdZ xZS )PasswordChangeViewzaccount/password_change.c                 L    t        t        j                  d| j                        S )Nr  rV   rY   s    rP   r8   z!PasswordChangeView.get_form_class  s    l002CT__UUrQ   c                     | j                   j                  j                         st        t	        d            S t        |   |g|i |S )Naccount_set_passwordrL   r   has_usable_passwordr   r   rI   r@   rJ   s       rP   r@   zPasswordChangeView.dispatch  sD    ||  446'0F(GHHw9$9&99rQ   c                 V    t         |          }| j                  j                  |d<   |S r   rI   rS   rL   r   rT   s     rP   rS   z"PasswordChangeView.get_form_kwargs  (    (***vrQ   c                 H    t               j                  | j                        S r   r    get_password_change_redirect_urlrL   rY   s    rP   get_default_success_urlz*PasswordChangeView.get_default_success_url      }==dllKKrQ   c                     |j                          t        j                  j                  | j                  |j
                         t        |   |      S r   )saver"   password_changefinalize_password_changerL   r   rI   r`   r   s     rP   r`   zPasswordChangeView.form_valid  s:    		66t||TYYOw!$''rQ   c                 N    t        |   di |}|j                  d      |d<   |S )Nr^   password_change_formrj   rI   rm   r   rK   rN   rr   rO   s      rP   rm   z#PasswordChangeView.get_context_data  s-    g&00&)ggfo"#
rQ   )rs   rt   ru   r   rv   rw   r   rX   r8   ry   r@   rS   r  r`   rm   rz   r{   s   @rP   r  r    sN     /1P1PPM#JV !: !:

L(
 rQ   r  c                   t     e Zd Zdej                  z   ZeZd Ze	 fd       Z
 fdZd Z fdZ fdZ xZS )PasswordSetViewzaccount/password_set.c                 L    t        t        j                  d| j                        S )Nset_passwordrV   rY   s    rP   r8   zPasswordSetView.get_form_class  s    l00.$//RRrQ   c                     | j                   j                  j                         rt        t	        d            S t        |   |g|i |S )Naccount_change_passwordr  rJ   s       rP   r@   zPasswordSetView.dispatch  sD    <<002'0I(JKKw9$9&99rQ   c                 V    t         |          }| j                  j                  |d<   |S r   r  rT   s     rP   rS   zPasswordSetView.get_form_kwargs  r  rQ   c                 H    t               j                  | j                        S r   r  rY   s    rP   r  z'PasswordSetView.get_default_success_url  r  rQ   c                     |j                          t        j                  j                  | j                  |j
                         t        |   |      S r   )r  r"   r  finalize_password_setrL   r   rI   r`   r   s     rP   r`   zPasswordSetView.form_valid  s:    		33DLL$))Lw!$''rQ   c                 N    t        |   di |}|j                  d      |d<   |S )Nr^   password_set_formrj   r"  r#  s      rP   rm   z PasswordSetView.get_context_data
  s-    g&00#&776? 
rQ   )rs   rt   ru   r   rv   rw   r   rX   r8   ry   r@   rS   r  r`   rm   rz   r{   s   @rP   r%  r%    sN     ,l.M.MMM JS !: !:

L(
 rQ   r%  c                   `     e Zd Zdej                  z   ZeZ ed      Z	d Z
 fdZ fdZ xZS )PasswordResetViewzaccount/password_reset.account_reset_password_donec                 L    t        t        j                  d| j                        S )Nreset_passwordrV   rY   s    rP   r8   z PasswordResetView.get_form_class      l002BDOOTTrQ   c                     t        j                  | j                  d|j                  d   j	                               }|r|S |j                  | j                         t        |   |      S )Nr4  r   )r?   r   )r4   consume_or_429rL   cleaned_datalowerr  rI   r`   )rK   r^   r429rO   s      rP   r`   zPasswordResetView.form_valid  s^    ''LL#!!'*002

 K		$,,w!$''rQ   c                     t        |   di |}| j                  t        d            }|j	                  d      |d<   |j                  d|i       |S )Nr   r^   password_reset_formr   rj   )rI   rm   rn   r   r   ro   )rK   rN   rr   r   rO   s       rP   rm   z"PasswordResetView.get_context_data(  sS    g&00--go.FG	%(WWV_!"

K+,
rQ   )rs   rt   ru   r   rv   rw   r   rX   r   rx   r8   r`   rm   rz   r{   s   @rP   r1  r1    s8    -0O0OOM"J<=KU	( rQ   r1  c                   *    e Zd Zdej                  z   Zy)PasswordResetDoneViewzaccount/password_reset_done.Nrs   rt   ru   r   rv   rw   rj   rQ   rP   r>  r>  5  s    2\5T5TTMrQ   r>  reset_password_from_keyc                   x     e Zd Zdej                  z   ZeZ ed      Z	dZ
d Z fdZ fdZ fdZ fdZ xZS )	PasswordResetFromKeyViewz account/password_reset_from_key.$account_reset_password_from_key_donezset-passwordc                 L    t        t        j                  d| j                        S )Nr@  rV   rY   s    rP   r8   z'PasswordResetFromKeyView.get_form_classH  s!     94??
 	
rQ   c                    || _         || _        t        t        j                  dt
              }t               j                  |      }| j                  | j                  k(  s|r|s/| j                   j                  j                  t        d      | _         ||| j                  d      }|j                         r\|j                  | _        | j                   j                  j                  rn| j                   j                  j                   | j                  j                   k7  r7| j#                          | j                  | j                   j                  t        <   t%        
| L  ||| j                  fi |S  ||| j                  d      }|j                         r{| j                  | j                   j                  t        <   | j)                  | j                   j*                  j-                  | j                  | j                              }t/        |      S d | _        | j1                  | j3                  d            }	t5        | j                   |	|      S )N
user_token uidb36r   r   T)
token_fail)r^   )rL   r   r8   r   rW   r!   r   r   reset_url_keyr   r   INTERNAL_RESET_SESSION_KEYis_valid
reset_userr   r   r   r   rI   r@   rn   pathreplacer6   r   rm   r(   )rK   rL   rI  r   rN   user_token_form_classr   
token_formr[   r]   rO   s             rP   r@   z!PasswordResetFromKeyView.dispatchM  s    .m!
 -''088t)))W<<//334NPRS.vdhh4WXJ""$","7"7 LL%%66)),,0B0BBKKMGKxxDLL(()CDw'LVLL.vdhh4WXJ""$
 DH88$$%?@#88LL%%--dhh8J8JK   --**4+@+@D+@+QRdllH:FFrQ   c                     t        t        | 
  di |}t        d| j                  d   | j                  d   d      |d<   |S )Naccount_reset_password_from_keyrI  r   rH  )rN   
action_urlrj   )rI   rB  rm   r   rN   r#  s      rP   rm   z)PasswordResetFromKeyView.get_context_datay  sN    ,dDNvN#-++h/{{5)
L 
rQ   c                 h    t         t        |          }| j                  |d<   | j                  |d<   |S )Nr   temp_key)rI   rB  rS   rN  r   rT   s     rP   rS   z(PasswordResetFromKeyView.get_form_kwargs  s3    /FHv!XXzrQ   c                    |j                          t        j                  j                  | j                  | j
                         t        j                  r t        | j                  | j
                        S t        t        | /  |      S r   )r  r"   password_resetfinalize_password_resetrL   rN  r   LOGIN_ON_PASSWORD_RESETr0   rI   rB  r`   r   s     rP   r`   z#PasswordResetFromKeyView.form_valid  sc    		44T\\4??S//   -t?EErQ   )rs   rt   ru   r   rv   rw   r   rX   r   rx   rK  r8   r@   rm   rS   r`   rz   r{   s   @rP   rB  rB  <  sL     79X9XXM%JEFK"M

*GX	F FrQ   rB  c                   *    e Zd Zdej                  z   Zy)PasswordResetFromKeyDoneViewz%account/password_reset_from_key_done.Nr?  rj   rQ   rP   r]  r]    s    /,2Q2QQ rQ   r]  c                   <    e Zd Zdej                  z   Zd Zd Zd Zy)
LogoutViewzaccount/logout.c                 R   t         j                  r | j                  |i |S | j                  j                  j
                  s/t        | j                               }t        | j                  |      S | j                         }| j                  |      }t        | j                  |      S r   )r   LOGOUT_ON_GETr   rL   r   r   r6   r   r(   rm   r   )rK   rM   rN   r]   r   s        rP   r   zLogoutView.get  s    %%499d-f--||  11 5 5 78H!$,,99##%**3/dllH55rQ   c                     | j                         }| j                  j                  j                  r| j	                          t        |      }t        | j                  |      S r   )r   rL   r   r   r   r6   r(   )rK   rM   rN   r   r]   s        rP   r   zLogoutView.post  sF    ##%<<--KKMC=dllH55rQ   c                     | j                         xs. t        | j                        j                  | j                        S r   )r   r   rL   get_logout_redirect_urlrY   s    rP   r   zLogoutView.get_redirect_url  s5      " 
k$,,&?&W&WLL'
 	
rQ   N)	rs   rt   ru   r   rv   rw   r   r   r   rj   rQ   rP   r_  r_    s!    %(G(GGM66
rQ   r_  c                   *    e Zd Zdej                  z   Zy)AccountInactiveViewzaccount/account_inactive.Nr?  rj   rQ   rP   rf  rf    s    /,2Q2QQMrQ   rf  c                   *    e Zd Zdej                  z   Zy)EmailVerificationSentViewzaccount/verification_sent.Nr?  rj   rQ   rP   rh  rh    s    0<3R3RRMrQ   rh  c                   j     e Zd Zdej                  z   ZeZ fdZd Z	 fdZ
 fdZd Z fdZ xZS ) ConfirmEmailVerificationCodeViewz(account/confirm_email_verification_code.c                    t        j                  |t        j                        | _        t
        j                  j                  |d      \  | _        | _	        | j                  xr d| j                  v}| j                  r$|j                  j                  rB| j                  s6|s4t        t        |j                  j                  r
d            S d            S t        | <  |g|i |S )NTpeekcoder   r   )r.   enterr,   r   stager"   email_verification_by_codeget_pending_verificationr   pending_verificationr   is_anonymousr   r   rI   r@   )rK   rL   rM   rN   verification_is_fakerO   s        rP   r@   z)ConfirmEmailVerificationCodeView.dispatch  s    )//9O9S9ST
,,EEd F  	544 %%Q&8Q8Q*Q 	 -- ))

, ('.||'@'@O FU 
 w9$9&99rQ   c                 L    t        t        j                  d| j                        S )Nconfirm_email_verification_coderV   rY   s    rP   r8   z/ConfirmEmailVerificationCodeView.get_form_class  s!     A4??
 	
rQ   c                 r    t         |          }| j                  r| j                  j                  nd|d<   |S )NrG  rn  )rI   rS   r   r   rK   rr   rO   s     rP   rS   z0ConfirmEmailVerificationCodeView.get_form_kwargs  s4    g%'/3/@/@d''++bF
rQ   c                     t        |   di |}| j                  d   |d<   | j                  rt	        d      n
t	        d      |d<   |S )Nr   r   r   
cancel_urlrj   )rI   rm   rs  rp  r   r#  s      rP   rm   z1ConfirmEmailVerificationCodeView.get_context_data  sO    g&00009G(,

GO$8P 	L 
rQ   c                     | j                   j                  | j                        }| j                  r6|s| j                  j	                         S | j                  j                         S t        t        d            S )Nr   )r   confirmrL   rp  abortexitr   r   )rK   r^   r   s      rP   r`   z+ConfirmEmailVerificationCodeView.form_valid  sZ    ))11$,,?:: zz''))::??$$#GO$<==rQ   c                 R   t         j                  j                  | j                  | j                        }|rt
        |   |      S t        | j                        }|j                  | j                  t        j                  |j                  d          t        t        d            S )Ntoo_many_login_attemptsmessager   )r"   rq  record_invalid_attemptrL   rs  rI   form_invalidr   add_messager   ERRORerror_messagesr   r   rK   r^   attempts_leftadapterrO   s       rP   r  z-ConfirmEmailVerificationCodeView.form_invalid  s    88OOLL$33
 7'--dll+LLNN**+DE 	 	

 $GO$<==rQ   )rs   rt   ru   r   rv   rw   r   rX   r@   r8   rS   rm   r`   r  rz   r{   s   @rP   rj  rj    s@    2\5T5TT  2J:<


>> >rQ   rj  c                     t         j                  rt        j                         |       S t	        j                         |       S r   )r   r   rj  as_viewrh  )rL   s    rP   email_verification_sentr    s3    66/779'BB(0027;;rQ   c                   J     e Zd Z fdZd Zd Zd Z fdZ fdZd Z	 xZ
S )BaseReauthenticateViewc                 ~    | j                  |      }|r|S | j                  |      }|r|S t        |   |g|i |S r   )(_check_reauthentication_method_available_check_ratelimitrI   r@   )rK   rL   rM   rN   r   rO   s        rP   r@   zBaseReauthenticateView.dispatch  sM    <<WEK$$W-Kw9$9&99rQ   c                 n    t        j                  | j                  d| j                  j                        S )Nreauthenticate)r?   r   )r4   r7  rL   r   )rK   rL   s     rP   r  z'BaseReauthenticateView._check_ratelimit'  s,    ''LL#""
 	
rQ   c                    t               j                  | j                  j                        }t	        |D cg c]  }|d   |j
                  k(   c}      ry |st        d      | j                  |d   d         }t        |      S c c}w )Nr   zReauthentication not availabler   )	r   get_reauthentication_methodsrL   r   anyrO  r   rn   r   )rK   rL   methodsmr   s        rP   r  z?BaseReauthenticateView._check_reauthentication_method_available.  sy    -<<T\\=N=NO':Q%GLL(:;"#CDD''
5(9:#C(( ;s   Bc                 b    t        | j                        j                  | j                        }|S r   )r   rL   get_login_redirect_urlr   s     rP   r  z.BaseReauthenticateView.get_default_success_url9  s$    $,,'>>t||L
rQ   c                 |    t         j                  j                  | j                        }|r|S t        |   |      S r   )r"   reauthenticationresume_requestrL   rI   r`   )rK   r^   r]   rO   s      rP   r`   z!BaseReauthenticateView.form_valid=  s5    ))88FOw!$''rQ   c                 h    t        |   di |}|j                  d| j                         i       |S )Nreauthentication_alternativesrj   )rI   rm   ro   !get_reauthentication_alternativesr#  s      rP   rm   z'BaseReauthenticateView.get_context_dataC  s;    g&00

/1W1W1Y	

 
rQ   c                 .   t               j                  | j                  j                        }g }|D ]R  }t	        |      }| j                  j
                  |d   k(  r+| j                  |d         |d<   |j                  |       T t        |d       }|S )Nr   c                     | d   S )Ndescriptionrj   )alts    rP   <lambda>zJBaseReauthenticateView.get_reauthentication_alternatives.<locals>.<lambda>U  s    C,> rQ   )r   )	r   r  rL   r   dictrO  rn   r   sorted)rK   r  altsrH   r  s        rP   r  z8BaseReauthenticateView.get_reauthentication_alternativesL  s    -<<T\\=N=NO 	Fv,C||  CJ.223u:>CJKK	 d >?rQ   )rs   rt   ru   r@   r  r  r  r`   rm   r  rz   r{   s   @rP   r  r    s&    :
	)(
rQ   r  c                   P     e Zd ZeZdej                  z   Zd Z fdZ	 fdZ
 xZS )ReauthenticateViewzaccount/reauthenticate.c                 L    t        t        j                  d| j                        S )Nr  rV   rY   s    rP   r8   z!ReauthenticateView.get_form_class^  r5  rQ   c                 V    t         |          }| j                  j                  |d<   |S r   r  ry  s     rP   rS   z"ReauthenticateView.get_form_kwargsa  s(    g%'ll''F
rQ   c                 t    t         j                  j                  | j                         t        |   |      S r   )r"   r  reauthenticate_by_passwordrL   rI   r`   r   s     rP   r`   zReauthenticateView.form_validf  s+    99$,,Gw!$''rQ   )rs   rt   ru   r   rX   r   rv   rw   r8   rS   r`   rz   r{   s   @rP   r  r  Y  s-    #J-0O0OOMU
( (rQ   r  c                   v     e Zd ZeZdej                  z   Z ee	       fd       Z
d Z fdZd Z fdZ xZS )RequestLoginCodeViewzaccount/request_login_code.c                 *    t        |   |g|i |S r   r   rJ   s       rP   r@   zRequestLoginCodeView.dispatchr  s    w9$9&99rQ   c                 L    t        t        j                  d| j                        S )Nrequest_login_coderV   rY   s    rP   r8   z#RequestLoginCodeView.get_form_classv      l002FXXrQ   c                     t         j                  j                  | j                  |j                  d          t
        |   |      S )Nr   )r"   login_by_coder  rL   r8  rI   r`   r   s     rP   r`   zRequestLoginCodeView.form_validy  s8    ..t||T=N=Nw=WXw!$''rQ   c                     | j                   j                  j                  ry t        d      }| j	                  t        d            }|S )Naccount_confirm_login_code)rL   r   r   r   rn   r   r   s     rP   r\   z$RequestLoginCodeView.get_success_url}  s>    <<--78''0L(MN
rQ   c                 v    t        |   di |}t        | j                        }|j	                  d|i       |S )Nrd   rj   )rI   rm   r   rL   ro   rK   rN   rr   rd   rO   s       rP   rm   z%RequestLoginCodeView.get_context_data  s8    g&00-

FD>"
rQ   )rs   rt   ru   r   rX   r   rv   rw   r   r   r@   r8   r`   r\   rm   rz   r{   s   @rP   r  r  n  sI    %J1L4S4SSMk": #:Y( rQ   r  c                        e Zd ZeZdej                  z   Z ee	       fd       Z
d Z fdZd Z fdZ fdZ xZS )ConfirmLoginCodeViewzaccount/confirm_login_code.c                    t        j                  |t        j                        | _        | j                  st        t        d            S t        j                  j                  | j                  j                  d      \  | _        | _        | j                  st        t        d            S t        | 8  |g|i |S )Nrh   Trl  )r.   ro  r-   r   rp  r   r   r"   r  get_pending_loginr>   r   pending_loginrI   r@   rJ   s       rP   r@   zConfirmLoginCodeView.dispatch  s    )//9I9M9MN
zz'0L(MNN(-(;(;(M(MJJ4 )N )
%	4% !!'0L(MNNw9$9&99rQ   c                 L    t        t        j                  d| j                        S )Nconfirm_login_coderV   rY   s    rP   r8   z#ConfirmLoginCodeView.get_form_class  r  rQ   c                 b    t         |          }| j                  j                  dd      |d<   |S )Nrn  rG  )rI   rS   r  r   rT   s     rP   rS   z$ConfirmLoginCodeView.get_form_kwargs  s1    (*++//;vrQ   c                     | j                         }t        j                  j                  | j                  | j
                  |      S r   )r   r"   r  perform_login_by_coderL   rp  )rK   r^   r[   s      rP   r`   zConfirmLoginCodeView.form_valid  s8    ((*""88LL$**l
 	
rQ   c                    t         j                  j                  | j                  | j                  j
                        }|rt        |   |      S t        | j                        }|j                  | j                  t        j                  |j                  d          t        t        | j                  d   r
d            S d            S )Nr  r  initiated_by_userrh   r   )r"   r  r  rL   rp  r>   rI   r  r   r  r   r  r  r   r   r  r  s       rP   r  z!ConfirmLoginCodeView.form_invalid  s    ++BBLL$****
 7'--dll+LLNN**+DE 	 	

 $%%&9: -
 	
 %
 	
rQ   c                     t        |   di |}t        | j                        }|j	                  || j
                  d   d       |S )Nr   )rd   r   rj   )rI   rm   r   rL   ro   r  r  s       rP   rm   z%ConfirmLoginCodeView.get_context_data  sL    g&00-

++G4	
 
rQ   )rs   rt   ru   r   rX   r   rv   rw   r   r   r@   r8   rS   r`   r  rm   rz   r{   s   @rP   r  r    sN    %J1L4S4SSMk"	: #	:Y


(	 	rQ   r  N)vdjango.contribr   django.contrib.auth.decoratorsr   django.contrib.sites.shortcutsr   django.core.exceptionsr   django.core.validatorsr   django.formsr   django.httpr	   r
   r   django.urlsr   r   django.utils.decoratorsr   django.views.decorators.cacher   django.views.decorators.debugr   django.views.generic.baser   django.views.generic.editr   allauthr   rF   allauth.accountallauth.account.adapterr   allauth.account.formsr   r   r   r   r   r   r   r   r   r   r    r!   allauth.account.internalr"   allauth.account.mixinsr#   r$   r%   r&   r'   r(   allauth.account.modelsr)   r*   r+   allauth.account.stagesr,   r-   r.   allauth.account.utilsr/   r0   r1   r2   r3   allauth.corer4   allauth.core.exceptionsr5   allauth.core.internal.httpkitr6   allauth.decoratorsr7   allauth.utilsr8   rL  ry   rC   r  r>   r~   r|   r   confirm_emailr   r   r  r  r%  password_setr1  rY  r>  password_reset_donerB  password_reset_from_keyr]  password_reset_from_key_doner_  r   rf  account_inactiverh  rj  r  r  r  r  r  r  r  r  rj   rQ   rP   <module>r     s   # 9 ; 3 1 ( C C - 4 5 C 2 . 8 ( /    +  
 
  # 9 2 ) ( 3  /mZkR 
 *G,:>;"#	; ?;| 	 *H-J?B"#B @BJ 
			^(*BL ^B !((* .z2*N3*EB / B  F 3B J 	 .z2*$56ZH8:KX  I 3D %,,. .z2 '(		57H(  3D &&()+JH : #**,UL U ,335  *$=>ZPUF#	UF QUFp 3::< <   <CCE 
"$<l 
4 
			R, R '..0 S SJ>x J>Z<9. 9x .z2(/ ( 3(" $++-9;Lh : *113 ;9;Lh ;| *113 rQ   