o
    h#                     @   s  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 d dlmZ d dlmZmZmZ d d	lmZ d d
lm Z  d dl!mZ d dl"m#Z# G dd dee#j$Z%G dd de#j$Z&G dd de#j$Z'G dd dee#j$Z(G dd de#j$Z)G dd de)Z*G dd de#j$Z+G dd dee#j$Z,G dd de#j$Z-G dd de-Z.G d d! d!e-Z/G d"d# d#e-Z0G d$d% d%ee#j$Z1G d&d' d'ee#j$Z2G d(d) d)ee#j$Z3G d*d+ d+ee#j$Z4G d,d- d-ee#j$Z5G d.d/ d/ee#j$Z6d0S )1    )ValidationError)validate_email)app_settings)get_adapter)
PhoneField)
AddEmailFormBaseSignupFormChangeEmailFormChangePhoneFormConfirmLoginCodeFormReauthenticateFormRequestLoginCodeFormResetPasswordFormUserTokenFormVerifyPhoneForm)flows)EmailAddressLoginget_emailconfirmation_model)context)compare_user_code)inputsc                       ,   e Zd Ze Z fddZdd Z  ZS )SignupInputc                    sB   t  j|i | tjd}|s| jd= d S |d | jd _d S )N	password1passwordrequired)super__init__account_settingsSIGNUP_FIELDSgetfieldsr   )selfargskwargsr   	__class__ V/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/headless/account/inputs.pyr      s
   zSignupInput.__init__c                 C   s   | j d }t |S )Nr   )cleaned_dataget_account_adapterclean_password)r#   r   r(   r(   r)   r,   &   s   
zSignupInput.clean_password)	__name__
__module____qualname__r   	CharFieldr   r   r,   __classcell__r(   r(   r&   r)   r      s    r   c                       sR   e Zd ZejddZejddZeddZ	e Z
 fddZ fddZ  ZS )
LoginInputFr   c                    sZ   t  j|i | dD ]}|tjvr| j|= qttjdkr+d| jtttj _d S d S )N)usernameemailphone   T)	r   r   r   LOGIN_METHODSr"   lennextiterr   )r#   r$   r%   fieldr&   r(   r)   r   2   s   
zLoginInput.__init__c           	         s   t   }| jr
|S i }tjD ]}||}|d ur%|| j v r%|||< qt|dkr2t	 
d|d}|r|tt| }||d< t	 jtjfi |}|rmt||dd| _tjtj| jrkt	 
d|S d|j }| dt	 
| |S )Nr7   invalid_loginr   r5   userr5   too_many_login_attemptsz%s_password_mismatch)r   cleanerrorsr   r8   r!   datakeysr9   r+   validation_errorr:   r;   authenticater   requestr   loginr   is_login_rate_limitedvalue	add_error)	r#   r*   credentialslogin_methodrJ   r   auth_methodr?   
error_coder&   r(   r)   rA   :   s8   




zLoginInput.clean)r-   r.   r/   r   r0   r4   
EmailFieldr5   r   r6   r   r   rA   r1   r(   r(   r&   r)   r2   +   s    
r2   c                       r   )VerifyEmailInputc                    s$   | dd | _t j|i | d S )Nprocess)poprR   r   r   r#   r$   r%   r&   r(   r)   r   [   s   zVerifyEmailInput.__init__c                 C   s   | j d }| jrt|| jjdst dd}| jj}n#t }||}|o+|	  }|s:t t
jr7dd|j}|| _|rL| sLt d|S )Nkeyactualexpectedincorrect_codeTinvalid_or_expired_keyemail_taken)r*   rR   r   coder+   rE   email_addressr   from_keykey_expiredr   "EMAIL_VERIFICATION_BY_CODE_ENABLEDverificationcan_set_verified)r#   rU   validr]   modelra   r(   r(   r)   	clean_key_   s*   


zVerifyEmailInput.clean_key)	r-   r.   r/   r   r0   rU   r   re   r1   r(   r(   r&   r)   rQ   X       rQ   c                   @      e Zd ZdS )RequestPasswordResetInputNr-   r.   r/   r(   r(   r(   r)   rh   w       rh   c                       s<   e Zd Ze Z fddZdd Zdd Zdd Z	  Z
S )	ResetPasswordKeyInputc                    s2   | dd | _| dd | _t j|i | d S )Nr?   r\   )rS   r?   r\   r   r   rT   r&   r(   r)   r   ~   s   zResetPasswordKeyInput.__init__c                 C   s   t jr|  S |  S )N)r   PASSWORD_RESET_BY_CODE_ENABLED_clean_key_code_clean_key_link)r#   r(   r(   r)   re      s   zResetPasswordKeyInput.clean_keyc                 C   s(   | j d }t|| jdst d|S )NrU   rV   rY   )r*   r   r\   r+   rE   )r#   rU   r(   r(   r)   rm      s   
z%ResetPasswordKeyInput._clean_key_codec                 C   sJ   | j d }|d\}}}t||dd}| st d|j| _|S )NrU   -)uidb36rU   )rC   invalid_password_reset)r*   	partitionr   is_validr+   rE   
reset_userr?   )r#   rU   rp   _subkey
token_formr(   r(   r)   rn      s   
z%ResetPasswordKeyInput._clean_key_link)r-   r.   r/   r   r0   rU   r   re   rm   rn   r1   r(   r(   r&   r)   rk   {   s    rk   c                       s$   e Zd Ze Z fddZ  ZS )ResetPasswordInputc              
      st   t   }| jd}| jr8|d ur8zt j|| jd W |S  ty7 } z| d| W Y d }~|S d }~ww |S )Nr   r?   )	r   rA   r*   r!   r?   r+   r,   r   rK   )r#   r*   r   er&   r(   r)   rA      s   
zResetPasswordInput.clean)r-   r.   r/   r   r0   r   rA   r1   r(   r(   r&   r)   rx      s    rx   c                       s@   e Zd ZejddZe Z fddZdd Zdd Z	  Z
S )	ChangePasswordInputFr3   c                    s4   | d| _t j|i | | j | jd _d S )Nr?   current_password)rS   r?   r   r   has_usable_passwordr"   r   rT   r&   r(   r)   r      s   zChangePasswordInput.__init__c                 C   s*   | j d }|r| j|st d|S )Nr|   enter_current_password)r*   r?   check_passwordr+   rE   )r#   r|   r(   r(   r)   clean_current_password   s
   
z*ChangePasswordInput.clean_current_passwordc                 C   s    | j d }t }|j|| jdS )Nnew_passwordry   )r*   r+   r,   r?   )r#   r   adapterr(   r(   r)   clean_new_password   s   
z&ChangePasswordInput.clean_new_password)r-   r.   r/   r   r0   r|   r   r   r   r   r1   r(   r(   r&   r)   r{      s    r{   c                   @   rg   )AddEmailInputNri   r(   r(   r(   r)   r      rj   r   c                       r   )SelectEmailInputc                    s"   | d| _t j|i | d S )Nr?   )rS   r?   r   r   rT   r&   r(   r)   r      s   zSelectEmailInput.__init__c                 C   sD   | j d }t| z
tjj| j|dW S  tjy!   t dw )Nr5   r>   unknown_email)	r*   r   r   objectsget_for_userr?   DoesNotExistr   rE   r#   r5   r(   r(   r)   clean_email   s   
zSelectEmailInput.clean_email)	r-   r.   r/   r   r0   r5   r   r   r1   r(   r(   r&   r)   r      rf   r   c                          e Zd Z fddZ  ZS )DeleteEmailInputc                    &   t   }tj|st d|S )Ncannot_remove_primary_email)r   r   r   manage_emailcan_delete_emailr+   rE   r   r&   r(   r)   r         
zDeleteEmailInput.clean_emailr-   r.   r/   r   r1   r(   r(   r&   r)   r          r   c                       s(   e Zd ZejddZ fddZ  ZS )MarkAsPrimaryEmailInputTr3   c                    r   )Nunverified_primary_email)r   r   r   r   can_mark_as_primaryr+   rE   r   r&   r(   r)   r      r   z#MarkAsPrimaryEmailInput.clean_email)r-   r.   r/   r   BooleanFieldprimaryr   r1   r(   r(   r&   r)   r      s    r   c                       r   )ResendEmailVerificationInputc                    sT   t jsd | _t  S | jd }t| tjj	
tj| _| js&t d| jjS )Nr5   r   )r   r`   rR   r   r   r*   r   r   email_verification_by_codeEmailVerificationProcessresumer   rG   r   rE   r]   r   r&   r(   r)   r      s   

z(ResendEmailVerificationInput.clean_emailr   r(   r(   r&   r)   r      r   r   c                   @   rg   )ReauthenticateInputNri   r(   r(   r(   r)   r      rj   r   c                   @   rg   )RequestLoginCodeInputNri   r(   r(   r(   r)   r      rj   r   c                   @   rg   )ConfirmLoginCodeInputNri   r(   r(   r(   r)   r      rj   r   c                   @   rg   )VerifyPhoneInputNri   r(   r(   r(   r)   r      rj   r   c                   @   rg   )ChangePhoneInputNri   r(   r(   r(   r)   r     rj   r   c                   @   rg   )ChangeEmailInputNri   r(   r(   r(   r)   r     rj   r   N)7django.core.exceptionsr   django.core.validatorsr   allauth.accountr   r   allauth.account.adapterr   r+   allauth.account.fieldsr   allauth.account.formsr   r   r	   r
   r   r   r   r   r   r   allauth.account.internalr   allauth.account.modelsr   r   r   allauth.corer   allauth.core.internal.cryptokitr   allauth.headless.adapter!allauth.headless.internal.restkitr   Inputr   r2   rQ   rh   rk   rx   r{   r   r   r   r   r   r   r   r   r   r   r   r(   r(   r(   r)   <module>   s<    0-
