
    fPi                        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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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dl&m'Z'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1  G d de      Z2 e!jf                         Z4 G d d      Z5 G d dejl                        Z7 G d de7      Z8 G d dejr                        Z: G d dejr                        Z;d Z< G d  d! e<             Z= G d" d#e=      Z> G d$ d%ejr                        Z? G d& d'e?      Z@ G d( d)e5e?      ZA G d* d+e5e?      ZB G d, d-ejr                        ZC G d. d/e5ejr                        ZD G d0 d1ejr                        ZE G d2 d3ejr                        ZF G d4 d5ejr                        ZG G d6 d7ejr                        ZH G d8 d9eH      ZI G d: d;eH      ZJy<)=    )import_module)forms)get_user_modelpassword_validation)PasswordResetTokenGenerator)
exceptions
validators)NoReverseMatchreverse)	mark_safe)gettextgettext_lazypgettext)flows)EmailVerificationStage)context	ratelimit)get_username_max_lengthset_form_field_order   )app_settings)DefaultAccountAdapterget_adapter)AuthenticationMethod)EmailAddressLogin)assess_unique_emailfilter_users_by_emailsetup_user_emailsync_user_email_addressesurl_str_to_user_pk
user_emailuser_pk_to_url_struser_usernamec                        e Zd Z fdZ xZS )%EmailAwarePasswordResetTokenGeneratorc                 6   t         t        |   ||      }t        |       t	        |      }t        |r|gng       }|j                  t        j                  j                  |      j                  dd             |dj                  t        |            z  }|S )NuseremailT)flat|)superr&   _make_hash_valuer    r"   setupdater   objectsfiltervalues_listjoinsorted)selfr)   	timestampretr*   emails	__class__s         P/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/account/forms.pyr.   z6EmailAwarePasswordResetTokenGenerator._make_hash_value!   s    94Q)
 	"$'4 eW2.  ''T'2>>wT>R	
 	sxxv''
    )__name__
__module____qualname__r.   __classcell__r:   s   @r;   r&   r&       s     r<   r&   c                        e Zd Z fdZ xZS )PasswordVerificationMixinc                     t         t        |          }|j                  d      }|j                  d      }|r"|r ||k7  r| j	                  dt        d             |S )N	password1	password2*You must type the same password each time.)r-   rC   cleanget	add_error_)r6   cleaned_datarE   rF   r:   s       r;   rH   zPasswordVerificationMixin.clean3   sY    6CE $$[1	 $$[1	)i)?NN;*V(WXr<   )r=   r>   r?   rH   r@   rA   s   @r;   rC   rC   2   s     r<   rC   c                        e Zd Z fdZ xZS )PasswordFieldc                    |j                  dt        j                        }t        j                  |d|j                  d      i      |d<   |j                  dd       }|||d   j                  d<   t        t        | &  |i | y )Nrender_valueplaceholderlabel)rP   attrswidgetautocomplete)
popr   PASSWORD_INPUT_RENDER_VALUEr   PasswordInputrI   rS   r-   rN   __init__)r6   argskwargsrP   rU   r:   s        r;   rY   zPasswordField.__init__=   s    zzLDD
 !..% &**W"56
x zz.$7#5AF8"">2mT+T<V<r<   r=   r>   r?   rY   r@   rA   s   @r;   rN   rN   <   s    = =r<   rN   c                   (     e Zd Z fdZ fdZ xZS )SetPasswordFieldc                     d|d<   |j                  dt        j                                t        |   |i | d | _        y )Nnew-passwordrU   	help_text)
setdefaultr   "password_validators_help_text_htmlr-   rY   r)   r6   rZ   r[   r:   s      r;   rY   zSetPasswordField.__init__L   sE    !/~,OOQ	
 	$)&)	r<   c                 p    t         |   |      }t               j                  || j                        }|S )Nr(   )r-   rH   r   clean_passwordr)   )r6   valuer:   s     r;   rH   zSetPasswordField.cleanT   s1    e$,,U,Cr<   )r=   r>   r?   rY   rH   r@   rA   s   @r;   r^   r^   K   s     r<   r^   c                        e Zd Z e ed      d      Z ej                   ed      d      ZdZ	 fdZ
d	 Zd
 Zd Z fdZddZ xZS )	LoginFormPasswordcurrent-passwordrR   rU   zRemember MeF)rR   requiredNc                    |j                  dd       | _        t        t        |   |i | t
        j                  t        j                  k(  rCt        j                  t        d      dd      }t        j                  t        d      |      }nt
        j                  t        j                  k(  rLt        j                  t        d      d	d      }t        j                  t        d      |t!               
      }nft
        j                  t        j"                  k(  sJ t        j                  t        d      dd      }t        j                  t%        dd      |      }|| j&                  d<   t)        | g d       t
        j*                  | j&                  d= 	 t-        d      }t        d      }t/        d| d| d      | j&                  d   _        y # t2        $ r Y y w xY w)NrequestEmail addressr*   rQ   rU   rS   EmailrR   rT   Usernameusername)rR   rT   
max_lengthzUsername or emailzfield labelr   login)rx   passwordrememberrz   account_reset_passwordzForgot your password?z	<a href="z">z</a>ry   )rV   ro   r-   ri   rY   r   AUTHENTICATION_METHODr   EMAILr   
EmailInputrK   
EmailFieldUSERNAME	TextInput	CharFieldr   USERNAME_EMAILr   fieldsr   SESSION_REMEMBERr   r   ra   r
   )r6   rZ   r[   login_widgetlogin_field	reset_url
forgot_txtr:   s          r;   rY   zLoginForm.__init__`   s   zz)T2i'88--1E1K1KK ++#$_#5$+L  **7LQK//3G3P3PP ??&'
mZPL  //
m#24K 22'6677 !??&'(;&<gVL  //}g6|K  +GT#DE((4J'	 89I 23J09I;bD91DKK
#-	  		s   G 	G%$G%c                    i }| j                   d   }t        j                  t        j                  k(  r||d<   nBt        j                  t        j
                  k(  r||d<   n| j                  |      r||d<   ||d<   | j                   d   |d<   |S )z_
        Provides the credentials required to authenticate the user for
        login.
        rx   r*   rv   ry   )rL   r   r|   r   r}   r   _is_login_email)r6   credentialsrx   s      r;   user_credentialszLoginForm.user_credentials   s    
 !!'*--1E1K1KK#(K //3G3P3PP&+K
###E*',G$&+K
#"&"3"3J"?Jr<   c                 @    | j                   d   }|j                         S )Nrx   )rL   strip)r6   rx   s     r;   clean_loginzLoginForm.clean_login   s    !!'*{{}r<   c                 n    	 t        j                  |       d}|S # t        j                  $ r d}Y |S w xY w)NTF)r	   validate_emailr   ValidationError)r6   rx   r8   s      r;   r   zLoginForm._is_login_email   sB    	%%e,C 
 )) 	C
	s    44c                 0   t         t        |           | j                  ry | j	                         }t        | j                        } |j                  | j                  fi |}|r|| _        | j                  S t        j                  }|t        j                  j                  k(  rU| j                  d   }| j                  |      rt        j                  j                  }nt        j                  j                   }|j#                  d|j$                  z        )Nrx   z%s_password_mismatch)r-   ri   rH   _errorsr   r   ro   authenticater)   r   r|   r   r   rL   r   r}   r   validation_errorrg   )r6   r   adapterr)   auth_methodrx   r:   s         r;   rH   zLoginForm.clean   s    i$&<<++-dll+#w##DLL@K@DI     '<<Kl??NNN))'2''."."C"C"I"IK"."C"C"L"LK**+AKDUDU+UVVr<   c                    | j                         }t        | j                  ||j                  d            }t        j
                  j                  |||      }t        j                  }|| j                  d   }|r+|j                  j                  t        j                         |S |j                  j                  d       |S )Nr*   )r)   redirect_urlr*   rz   r   )r   r   r)   rI   r   rx   perform_password_loginr   r   rL   session
set_expirySESSION_COOKIE_AGE)r6   ro   r   r   rx   r8   rz   s          r;   rx   zLoginForm.login   s    ++-%//'*

 kk00+uM00((4HOO&&|'F'FG 
 OO&&q)
r<   N)r=   r>   r?   rN   rK   ry   r   BooleanFieldrz   r)   rY   r   r   r   rH   rx   r@   rA   s   @r;   ri   ri   Z   sQ    1Z=?QRH!u!!-(85IHD+Z$!(r<   ri   c                       e Zd Zd Zy)_DummyCustomSignupFormc                      y)zL
        Invoked at signup time to complete the signup of the user.
        N r6   ro   r)   s      r;   signupz_DummyCustomSignupForm.signup   s     	r<   N)r=   r>   r?   r   r   r<   r;   r   r      s    r<   r   c                      t         j                  st        S 	 t         j                  j                  dd      \  } }	 t        |       }	 t        ||      }t        |d      st        j                  d      |S # t        $ r' t        j                  dt         j                  z        w xY w# t        $ r!}t        j                  d| d|d      d}~ww xY w# t        $ r t        j                  d| d	|d
      w xY w)a  
    Currently, we inherit from the custom form, if any. This is all
    not very elegant, though it serves a purpose:

    - There are two signup forms: one for local accounts, and one for
      social accounts
    - Both share a common base (BaseSignupForm)

    - Given the above, how to put in a custom signup form? Which form
      would your custom form derive from, the local or the social one?
    .r   z!%s does not point to a form classzError importing form class z: ""NzModule "z" does not define a "z" classr   zLThe custom signup form must offer a `def signup(self, request, user)` method)r   SIGNUP_FORM_CLASSr   rsplit
ValueErrorr   ImproperlyConfiguredr   ImportErrorgetattrAttributeErrorhasattr)	fc_modulefc_classnamemodefc_classs        r;   _base_signup_form_classr      s	    ))%%
"."@"@"G"GQ"O	<

I&

3-
 8X&--:
 	
 O+  
--/,2P2PP
 	

  
--8A1E
 	

  
--=FU
 	

s.   #A7 B* C 70B'*	C3CC&C=c            	       ,    e Zd Z ej                   ed      ej                   ej                   ed      dd            Z	 ej                   ej                  d ed      dd      	      Z fd
Zd Zd Zd Zd Z fdZd Zd Zd Z xZS )BaseSignupFormru   rv   rq   rr   )rR   
min_lengthrT   r*   rp   typerQ   rU   rT   c           	         |j                  dt        j                        }|j                  dt        j                        | _        d| _        t        t        | "  |i | | j                  d   }t               |_        |j                  j                  t        j                  |j                               t        |j                        |j                   j"                  d<   g d}t        j$                  rMt'        j(                  t+        d      t'        j,                  dt+        d	      d
            | j                  d<   |r2t/        d      | j                  d   _        d| j                  d   _        n_t/        d      | j                  d   _        d| j                  d   _        d| j                  d   j                   _        | j                  rg d}| j                  s| j                  d= t7        | t9        | dd       xs |       y )Nemail_requiredusername_requiredFrv   	maxlength)r*   email2rv   rE   rF   zEmail (again)r*   zEmail address confirmationr   rQ   rr   rt   r   rs   TzEmail (optional))rv   r*   r   rE   rF   field_order)rV   r   EMAIL_REQUIREDUSERNAME_REQUIREDr   account_already_existsr-   r   rY   r   r   rw   r	   appendMaxLengthValidatorstrrT   rS   SIGNUP_EMAIL_ENTER_TWICEr   r   rK   r   r   rR   rm   is_requiredr   r   )r6   rZ   r[   r   username_fielddefault_field_orderr:   s         r;   rY   zBaseSignupForm.__init__  s   $4l6Q6QR!'!?!?"
 ',#nd,d=f=Z0$;$=!!!(()).*C*CD	
 47~7P7P3Q##K0
 00$)$4$4( ''()E'F%DKK! )0)9DKK &,0DKK ))01C)DDKK &,1DKK )6;DKK ''3%%'# %%J''$t4K8K	
r<   c                 V    | j                   d   }t               j                  |      }|S )Nrv   )rL   r   clean_usernamer6   rg   s     r;   r   zBaseSignupForm.clean_usernameI  s+    !!*-,,U3
 r<   c                     | j                   d   j                         }t               j                  |      }|r!t        j
                  r| j                  |      }|S )Nr*   )rL   lowerr   clean_emailr   UNIQUE_EMAILvalidate_unique_emailr   s     r;   r   zBaseSignupForm.clean_emailR  sM    !!'*002))%0\....u5Er<   c                 @    | j                   d   j                         }|S )Nr   )rL   r   r   s     r;   clean_email2zBaseSignupForm.clean_email2Y  s     !!(+113r<   c                     t               }t        |      }|du rn |du r|j                  d      |J d| _        |j	                  |      S )NTFemail_taken)r   r   r   r   r   )r6   rg   r   
assessments       r;   r   z$BaseSignupForm.validate_unique_email]  s\    -(/
5 **=99%%%*.D',,U33r<   c                     t         t        |          }t        j                  rF|j                  d      }|j                  d      }|r"|r ||k7  r| j                  dt        d             |S )Nr*   r   z'You must type the same email each time.)r-   r   rH   r   r   rI   rJ   rK   )r6   rL   r*   r   r:   s       r;   rH   zBaseSignupForm.cleank  s`    ^T8:00 $$W-E!%%h/F&evox+T)UVr<   c                 (    | j                  ||       y r   )r   r   s      r;   custom_signupzBaseSignupForm.custom_signupt  s    GT"r<   c                    | j                   rj| j                  d   }t        j                  j	                  ||      }d}t
        j                  |j                  t        j                  j                  <   ||fS | j                  |      }d}||fS )zTry and save the user. This can fail in case of a conflict on the
        email address, in that case we will send an "account already exists"
        email and return a standard "email verification sent" response.
        r*   N)r   rL   r   r   prevent_enumerationr   keyr   rx   LOGIN_SESSION_KEYsave)r6   ro   r*   respr)   s        r;   try_savezBaseSignupForm.try_savew  s    
 && %%g.E<<33GUCDD=S=W=WGOOEKK99: Tz 99W%DDTzr<   c                 .   | j                   j                  d      }| j                  rt        |      t	               }|j                  |      }|j                  |||        | j                  ||       t        |||rt        |      g       |S g        |S )Nr*   )r*   )
rL   rI   r   r   r   new_user	save_userr   r   r   )r6   ro   r*   r   r)   s        r;   r   zBaseSignupForm.save  s    !!%%g.&&U##-('4.7D)$uE)B(CU SUUr<   )r=   r>   r?   r   r   rK   r   USERNAME_MIN_LENGTHr   rv   r   r*   rY   r   r   r   r   rH   r   r   r   r@   rA   s   @r;   r   r     s    u
m33u"#J-L
H Eu 1 '
E4
l4#$
r<   r   c                   2     e Zd Z fdZ fdZ fdZ xZS )
SignupFormc           
         t        t        | 
  |i | t        t	        d      dt        j                               | j                  d<   t        j                  r#t        t	        d      d      | j                  d<   t        | d      rt        | | j                         t        j                  }|r>t        j                  d	d
t        j                   dddd            | j                  |<   y y )Nrj   r`   )rR   rU   ra   rE   Password (again)rl   rF   r   F z$position: absolute; right: -99999px;z-1nope)styletabindexrU   rr   )rm   rR   rT   )r-   r   rY   rN   rK   r   rc   r   r   SIGNUP_PASSWORD_ENTER_TWICEr   r   r   SIGNUP_FORM_HONEYPOT_FIELDr   r   r   )r6   rZ   r[   honeypot_field_namer:   s       r;   rY   zSignupForm.__init__  s    j$($9&9#0J-')LLN$
K 
 33'4*+.(DKK$ 4' t'7'78*EE/4!G$((.
0DKK+, r<   c                     t         j                  }|r1| j                  |   r"d}t               }|j	                  |d      }||fS t
        |   |      S )z
        override of parent class method that adds additional catching
        of a potential bot filling out the honeypot field and returns a
        'fake' email verification response if honeypot was filled out
        N)r   r   rL   r   respond_email_verification_sentr-   r   )r6   ro   r   r)   r   r   r:   s         r;   r   zSignupForm.try_save  s]     +EE  !45%- >>wMTz!w((r<   c                    t         |           t               } |       }t        || j                  j                  d             t        || j                  j                  d             | j                  j                  d      }|r	 t               j                  ||       t        j                  rVd| j                  v rHd| j                  v r:| j                  d   | j                  d   k7  r| j                  dt        d             | j                  S # t        j                  $ r}| j                  d|       Y d }~d }~ww xY w)Nrv   r*   rE   r(   rF   rG   )r-   rH   r   r$   rL   rI   r"   r   rf   r   r   rJ   r   r   rK   )r6   User
dummy_userry   r   r:   s        r;   rH   zSignupForm.clean  s   
 V
j$"3"3"7"7
"CD:t0044W=>$$((5/,,XJ,G
 44t000t000  -1B1B;1OOBC     (( /{A../s   	D E)E  E)r=   r>   r?   rY   r   rH   r@   rA   s   @r;   r   r     s    :)&! !r<   r   c                         e Zd Zd fd	Z xZS )UserFormc                 :    || _         t        t        |   |i | y r   )r)   r-   r   rY   )r6   r)   rZ   r[   r:   s       r;   rY   zUserForm.__init__  s    	h&77r<   r   r\   rA   s   @r;   r   r     s    8 8r<   r   c            
           e Zd Z ej                   ed      d ej                  d ed      d            Zd Zd	 Z	y
)AddEmailFormrs   Tr*   rp   r   rr   rR   rm   rT   c                    ddl m} | j                  d   j                         }t	               }|j                  |      }t        |      }|D cg c](  }|j                  | j                  j                  k(  s'|* }}|D cg c](  }|j                  | j                  j                  k7  s'|* }}|r|j                  d      |r1t        j                  r!t        j                  s|j                  d      t        j                  j                  | j                        s |j                  dt        j                         |j"                  j%                  | j                  j&                  || j                         |S c c}w c c}w )Nr   )signalsr*   duplicate_emailr   max_email_addresses)senderr*   r)   )allauth.accountr  rL   r   r   r   r   pkr)   r   r   r   PREVENT_ENUMERATIONr   r1   can_add_emailMAX_EMAIL_ADDRESSES
_add_emailsendr:   )r6   r  rg   r   usersuon_this_accounton_diff_accounts           r;   r   zAddEmailForm.clean_email  s@   +!!'*002-##E*%e,&+Dqtttyy||/C1DD&+Dqtttyy||/C1DD**+<== ))!55**=99##11$))<**%|'G'G  	99&& 	  	

 1 EDs   (E=7E=(F*Fc                    t         j                  r7t        | j                  | j                  d         }|j                  |       |S t         j                  r8t        j                  j                  || j                  | j                  d         S t        j                  j                  || j                  | j                  d   d      S )Nr*   )r)   r*   T)confirm)
r   "EMAIL_VERIFICATION_BY_CODE_ENABLEDr   r)   rL   send_confirmationCHANGE_EMAILr1   add_new_email	add_email)r6   ro   email_addresss      r;   r   zAddEmailForm.save  s    ::(YYd&7&7&@M ++G4  &&''55D$5$5g$>  ##--TYY 1 1' :D . 
 	
r<   N)
r=   r>   r?   r   r   rK   r   r*   r   r   r   r<   r;   r   r     sD    Eju"1_3EF
EB
r<   r   c                        e Zd Z e ed      d      Z e ed            Z e ed            Z fdZ	d Z
d	 Z xZS )
ChangePasswordFormzCurrent Passwordrk   rl   New PasswordrR   New Password (again)c                 h    t        t        | 
  |i | | j                  | j                  d   _        y NrE   )r-   r  rY   r)   r   rd   s      r;   rY   zChangePasswordForm.__init__,  s-     $0$A&A(,		K %r<   c                     | j                   j                  | j                  j                  d            st	               j                  d      | j                  d   S )Noldpasswordenter_current_password)r)   check_passwordrL   rI   r   r   r6   s    r;   clean_oldpasswordz$ChangePasswordForm.clean_oldpassword0  sJ    yy''(9(9(=(=m(LM-001IJJ  //r<   c                 r    t         j                  j                  | j                  | j                  d          y r  r   password_changechange_passwordr)   rL   r$  s    r;   r   zChangePasswordForm.save5  '    --dii9J9J;9WXr<   )r=   r>   r?   rN   rK   r!  r^   rE   rF   rY   r%  r   r@   rA   s   @r;   r  r  %  sJ    "#2DK !q'89IA&<$=>I20
Yr<   r  c                   `     e Zd Z e ed            Z e ed            Z fdZd Z	 xZ
S )SetPasswordFormrj   r  r   c                 h    t        t        | 
  |i | | j                  | j                  d   _        y r  )r-   r,  rY   r)   r   rd   s      r;   rY   zSetPasswordForm.__init__=  s,    ot-t>v>(,		K %r<   c                 r    t         j                  j                  | j                  | j                  d          y r  r'  r$  s    r;   r   zSetPasswordForm.saveA  r*  r<   r=   r>   r?   r^   rK   rE   rN   rF   rY   r   r@   rA   s   @r;   r,  r,  9  s,     q}5IA&8$9:I2Yr<   r,  c            
           e Zd Z ej                   ed      d ej                  d ed      dd            Zd Zd	e	fd
Z
y)ResetPasswordFormrs   Tr*   rp   r   rr   r   c                    | j                   d   j                         }t               j                  |      }t	        |dd      | _        | j
                  s)t        j                  st               j                  d      | j                   d   S )Nr*   T	is_activeprefer_verifiedunknown_email)	rL   r   r   r   r   r  r   r  r   )r6   r*   s     r;   r   zResetPasswordForm.clean_emailR  sq    !!'*002))%0*5DRVW
zz,"B"B-00AA  ))r<   returnc                    | j                   d   }| j                  s"t        j                  j	                  ||       |S t               }|j                  dt              }| j                  D ]  }|j                  |      }t        |      }| d| }	|j                  |	      }
||
|||d}t        j                  t        j                  k7  rt        |      |d<   |j!                  |||        |S )Nr*   token_generator-)r)   password_reset_urluidr   ro   rv   )rL   r  r   r   send_unknown_account_mailr   rI   default_token_generator
make_tokenr#   get_reset_password_from_key_urlr   r|   r   r}   r$   send_password_reset_mail)r6   ro   r[   r*   r   r9  r)   temp_keyr<  r   urlr   s               r;   r   zResetPasswordForm.saveZ  s    !!'*zzLL227EBL)4 **%68OPJJ 	CD&11$7H %T*C E8*%C99#>C&)"G 115I5O5OO&3D&9
#,,T5'B)	C* r<   N)r=   r>   r?   r   r   rK   r   r*   r   r   r   r   r<   r;   r1  r1  E  sP    Eju 1 '

E* r<   r1  c                   `     e Zd Z e ed            Z e ed            Z fdZd Z	 xZ
S )ResetPasswordKeyFormr  r  r  c                     |j                  dd       | _        |j                  dd       | _        t        t        |   |i | | j                  | j                  d   _        y )Nr)   rB  rE   )rV   r)   rB  r-   rE  rY   r   rd   s      r;   rY   zResetPasswordKeyForm.__init__~  sQ    JJvt,	

:t4"D2DCFC(,		K %r<   c                 r    t         j                  j                  | j                  | j                  d          y r  )r   password_resetreset_passwordr)   rL   r$  s    r;   r   zResetPasswordKeyForm.save  s'    ++DIIt7H7H7UVr<   r/  rA   s   @r;   rE  rE  z  s-     q'89IA&<$=>I2Wr<   rE  c                   p     e Zd Z ej                         Z ej                         ZdZeZ	d Z
 fdZ xZS )UserTokenFormNc                     t               }	 t        |      }|j                  j                  |      S # t        |j
                  f$ r Y y w xY w)N)r  )r   r!   r1   rI   r   DoesNotExist)r6   uidb36r   r  s       r;   	_get_userzUserTokenForm._get_user  sN    	#F+B<<##r#**D--. 		s   &3 A
Ac                 `   t         t        |          }|j                  dd       }|j                  dd       }t	               }|s|j                  d      | j                  |      | _        | j                  &| j                  j                  | j                  |      s|j                  d      |S )NrN  r   invalid_password_reset)
r-   rK  rH   rI   r   r   rO  
reset_userr9  check_token)r6   rL   rN  r   r   r:   s        r;   rH   zUserTokenForm.clean  s    ]D79!!(D1ud+-**+CDD..0??"$*>*>*J*JOOS+
 **+CDDr<   )r=   r>   r?   r   r   rN  r   rR  r>  r9  rO  rH   r@   rA   s   @r;   rK  rK    s8    U__F
%//
CJ-O r<   rK  c                   D     e Zd Z e ed      d      Z fdZd Z xZS )ReauthenticateFormrj   rk   rl   c                 P    |j                  d      | _        t        |   |i | y )Nr)   )rV   r)   r-   rY   rd   s      r;   rY   zReauthenticateForm.__init__  %    JJv&	$)&)r<   c                     | j                   j                  d      }t               j                  | j                  |      st               j                  d      |S )Nry   incorrect_password)rL   rI   r   reauthenticater)   r   )r6   ry   s     r;   rf   z!ReauthenticateForm.clean_password  sG    $$((4}++DIIx@-001EFFr<   )	r=   r>   r?   rN   rK   ry   rY   rf   r@   rA   s   @r;   rU  rU    s    1Z=?QRH*r<   rU  c                   l    e Zd Z ej                   ej
                   ed      dd            Zd Zy)RequestLoginCodeFormrp   r*   rq   rr   r   c                 $   t               }| j                  d   }t        j                  s!t	        |dd      }|s|j                  d      t        j                  t        j                  d|j                               s|j                  d      |S )Nr*   Tr3  r6  request_login_code)actionr   too_many_login_attempts)r   rL   r   r  r   r   r   consumer   ro   r   )r6   r   r*   r  s       r;   r   z RequestLoginCodeForm.clean_email  s~    -!!'*//)%4QUVE..??  OO$8ekkm
 **+DEEr<   N)	r=   r>   r?   r   r   r~   rK   r*   r   r   r<   r;   r\  r\    s9    Eu 1 '
Er<   r\  c                        e Zd Z ej                   ed       ej                   ed      dd            Z fdZd Z	 xZ
S )BaseConfirmCodeFormCodezone-time-coderq   rr   rt   c                 P    |j                  d      | _        t        |   |i | y )Ncode)rV   rf  r-   rY   rd   s      r;   rY   zBaseConfirmCodeForm.__init__  rW  r<   c                     | j                   j                  d      }t        j                  j	                  || j
                        st               j                  d      |S )Nrf  )actualexpectedincorrect_code)rL   rI   r   login_by_codecompare_coderf  r   r   )r6   rf  s     r;   
clean_codezBaseConfirmCodeForm.clean_code  sN      $$V,""//tdii/P-001ABBr<   )r=   r>   r?   r   r   rK   r   rf  rY   rm  r@   rA   s   @r;   rc  rc    s>    5??iu"#F)_M
D*r<   rc  c                       e Zd Zy)ConfirmLoginCodeFormNr=   r>   r?   r   r<   r;   ro  ro        r<   ro  c                       e Zd Zy) ConfirmEmailVerificationCodeFormNrp  r   r<   r;   rs  rs    rq  r<   rs  N)K	importlibr   djangor   django.contrib.authr   r   django.contrib.auth.tokensr   django.corer   r	   django.urlsr
   r   django.utils.safestringr   django.utils.translationr   r   rK   r   allauth.account.internalr   allauth.account.stagesr   allauth.corer   r   allauth.utilsr   r   r   r   r   r   r   r   modelsr   r   utilsr   r   r   r    r!   r"   r#   r$   r&   PASSWORD_RESET_TOKEN_GENERATORr>  rC   r   rN   r^   Formri   r   r   r   r   r   r   r  r,  r1  rE  rK  rU  r\  rc  ro  rs  r   r<   r;   <module>r     s   #  C B . / - I I * 9 + G  7 . '	 	 	,G  F,EEG  =EOO =} t

 tnUZZ %PR,. RjL! L!^8uzz 87
8 7
tY2H Y(	Y/ 	Y2

 2jW4ejj WEJJ B 5:: 2%** &	. 		': 	r<   