o
    ˷e%-                     @   s4   G d d de ZddlZedZee_eeje< dS )c                   @   s<  e Zd ZG dd dZG dd dZdd Zdd Zed	d
 Zedd Z	edd Z
edd Zedd Zedd Zedd Zedd Zedd Zedd Zedd Zedd  Zed!d" Zed#d$ Zed%d& Zed'd( Zed)d* Zed+d, Zed-d. Zed/d0 Zed1d2 Zed3d4 Zed5d6 Zed7d8 Zed9d: Z ed;d< Z!ed=d> Z"ed?d@ Z#edAdB Z$edCdD Z%edEdF Z&edGdH Z'edIdJ Z(edKdL Z)edMdN Z*edOdP Z+edQdR Z,edSdT Z-edUdV Z.edWdX Z/edYdZ Z0ed[d\ Z1ed]d^ Z2d_S )`AppSettingsc                   @      e Zd ZdZdZdZdS )z AppSettings.AuthenticationMethodusernameemailusername_emailN)__name__
__module____qualname__USERNAMEEMAILUSERNAME_EMAIL r   r   S/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/account/app_settings.pyAuthenticationMethod   s    r   c                   @   r   )z#AppSettings.EmailVerificationMethod	mandatoryoptionalnoneN)r   r   r   	MANDATORYOPTIONALNONEr   r   r   r   EmailVerificationMethod   s    r   c                 C   s   || _ | j| jjkr| jsJ | j| jjks| jsJ | j| jj	ks'| js'J | j
s<| jr/J | j| jj| jjfvs<J | jd urH| jdksJJ d S d S )N    )prefixAUTHENTICATION_METHODr   r
   EMAIL_REQUIREDr	   UNIQUE_EMAILEMAIL_VERIFICATIONr   r   USER_MODEL_USERNAME_FIELDUSERNAME_REQUIREDr   MAX_EMAIL_ADDRESSES)selfr   r   r   r   __init__   s(   


zAppSettings.__init__c                    s0   ddl m  t d fdd}|| j| |S )Nr   settingsALLAUTH_SETTING_GETTERc                    s   t  | |S )N)getattr)namedfltr!   r   r   <lambda>-   s    z&AppSettings._setting.<locals>.<lambda>)django.confr"   r$   r   )r   r%   r&   getterr   r!   r   _setting'   s   
zAppSettings._settingc                 C      |  ddS )NPREVENT_ENUMERATIONTr*   r   r   r   r   r,   1      zAppSettings.PREVENT_ENUMERATIONc                 C   s   |  dd S )NDEFAULT_HTTP_PROTOCOLhttp)r*   lowerr.   r   r   r   r0   5   s   z!AppSettings.DEFAULT_HTTP_PROTOCOLc                 C   s    ddl m} | dt|ddS )za
        Determines the expiration date of e-mail confirmation mails (#
        of days)
        r   r!   EMAIL_CONFIRMATION_EXPIRE_DAYSEMAIL_CONFIRMATION_DAYS   )r(   r"   r*   r$   r   r"   r   r   r   r3   9   s
   
z*AppSettings.EMAIL_CONFIRMATION_EXPIRE_DAYSc                 C   r+   )zy
        The URL to redirect to after a successful e-mail confirmation, in
        case of an authenticated user
        -EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URLNr-   r.   r   r   r   r7   F      z9AppSettings.EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URLc                 C      ddl m} | d|jS )zu
        The URL to redirect to after a successful e-mail confirmation, in
        case no user is logged in
        r   r!   )EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL)r(   r"   r*   	LOGIN_URLr6   r   r   r   r:   N   s   z5AppSettings.EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URLc                 C   r+   )z
        The cooldown in seconds during which, after an email confirmation has
        been sent, a second confirmation email will not be sent.
        EMAIL_CONFIRMATION_COOLDOWN   r-   r.   r   r   r   r<   Z   r8   z'AppSettings.EMAIL_CONFIRMATION_COOLDOWNc                 C   r+   )zU
        The user is required to hand over an e-mail address when signing up
        r   Fr-   r.   r   r   r   r   b      zAppSettings.EMAIL_REQUIREDc                 C   s8   |  d| jj}|du r| jj}|S |du r| jj}|S )z0
        See e-mail verification method
        r   TF)r*   r   r   r   r   retr   r   r   r   i   s   zAppSettings.EMAIL_VERIFICATIONc                 C   s   |  dd S )Nr   r-   r.   r   r   r   r   v   r/   zAppSettings.MAX_EMAIL_ADDRESSESc                 C   s   |  d| jj}|S )Nr   )r*   r   r	   r?   r   r   r   r   z   s   z!AppSettings.AUTHENTICATION_METHODc                 C   r+   )z7
        Adjust max_length of e-mail addresses
        EMAIL_MAX_LENGTH   r-   r.   r   r   r   rA      r>   zAppSettings.EMAIL_MAX_LENGTHc                 C   r+   )z8
        Enforce uniqueness of e-mail addresses
        r   Tr-   r.   r   r   r   r      r>   zAppSettings.UNIQUE_EMAILc                 C   r+   )z+
        Signup email verification
        SIGNUP_EMAIL_ENTER_TWICEFr-   r.   r   r   r   rC      r>   z$AppSettings.SIGNUP_EMAIL_ENTER_TWICEc                 C   s   |  dd}|  d|S )z.
        Signup password verification
        SIGNUP_PASSWORD_VERIFICATIONTSIGNUP_PASSWORD_ENTER_TWICEr-   )r   legacyr   r   r   rE      s   z'AppSettings.SIGNUP_PASSWORD_ENTER_TWICEc                 C   r9   )Nr   r!   SIGNUP_REDIRECT_URL)r(   r"   r*   LOGIN_REDIRECT_URLr6   r   r   r   rG      s   zAppSettings.SIGNUP_REDIRECT_URLc                 C   s&   ddl m} d}|js| dd}|S )z)
        Minimum password Length
        r   r!   NPASSWORD_MIN_LENGTH   )r(   r"   AUTH_PASSWORD_VALIDATORSr*   )r   r"   r@   r   r   r   rI      s
   zAppSettings.PASSWORD_MIN_LENGTHc                 C   s   ddddddd}|  d|S )Nz5/mz10/mz20/m)change_passwordmanage_emailreset_passwordreset_password_emailreset_password_from_keysignupRATE_LIMITSr-   )r   r&   r   r   r   rR      s   zAppSettings.RATE_LIMITSc                 C   r+   )zD
        Subject-line prefix to use for email messages sent
        EMAIL_SUBJECT_PREFIXNr-   r.   r   r   r   rS      r>   z AppSettings.EMAIL_SUBJECT_PREFIXc                 C   r+   )z
        Signup form
        SIGNUP_FORM_CLASSNr-   r.   r   r   r   rT      r>   zAppSettings.SIGNUP_FORM_CLASSc                 C   r+   )zJ
        The user is required to enter a username when signing up
        r   Tr-   r.   r   r   r   r      r>   zAppSettings.USERNAME_REQUIREDc                 C   r+   )z)
        Minimum username Length
        USERNAME_MIN_LENGTH   r-   r.   r   r   r   rU      r>   zAppSettings.USERNAME_MIN_LENGTHc                 C   s   |  dg S )z8
        List of usernames that are not allowed
        USERNAME_BLACKLISTr-   r.   r   r   r   rW      r>   zAppSettings.USERNAME_BLACKLISTc                 C   r+   )zJ
        render_value parameter as passed to PasswordInput fields
        PASSWORD_INPUT_RENDER_VALUEFr-   r.   r   r   r   rX      r>   z'AppSettings.PASSWORD_INPUT_RENDER_VALUEc                 C   r+   )NADAPTERz-allauth.account.adapter.DefaultAccountAdapterr-   r.   r   r   r   rY      r/   zAppSettings.ADAPTERc                 C   r+   )NCONFIRM_EMAIL_ON_GETFr-   r.   r   r   r   rZ      r/   z AppSettings.CONFIRM_EMAIL_ON_GETc                 C   r+   )NAUTHENTICATED_LOGIN_REDIRECTSTr-   r.   r   r   r   r[      r/   z)AppSettings.AUTHENTICATED_LOGIN_REDIRECTSc                 C   r+   )zW
        Automatically log the user in once they confirmed their email address
        LOGIN_ON_EMAIL_CONFIRMATIONFr-   r.   r   r   r   r\      r>   z'AppSettings.LOGIN_ON_EMAIL_CONFIRMATIONc                 C   r+   )zc
        Automatically log the user in immediately after resetting
        their password.
        LOGIN_ON_PASSWORD_RESETFr-   r.   r   r   r   r]      r8   z#AppSettings.LOGIN_ON_PASSWORD_RESETc                 C   s   ddl m} | d|jpdS )Nr   r!   LOGOUT_REDIRECT_URL/)r(   r"   r*   r^   r6   r   r   r   r^     s   zAppSettings.LOGOUT_REDIRECT_URLc                 C   r+   )NLOGOUT_ON_GETFr-   r.   r   r   r   r`     r/   zAppSettings.LOGOUT_ON_GETc                 C   r+   )NLOGOUT_ON_PASSWORD_CHANGEFr-   r.   r   r   r   ra     r/   z%AppSettings.LOGOUT_ON_PASSWORD_CHANGEc                 C   r+   )Nr   r   r-   r.   r   r   r   r     r/   z%AppSettings.USER_MODEL_USERNAME_FIELDc                 C   r+   )NUSER_MODEL_EMAIL_FIELDr   r-   r.   r   r   r   rb     r/   z"AppSettings.USER_MODEL_EMAIL_FIELDc                 C   r9   )zP
        Deprecated -- use Django's settings.SESSION_COOKIE_AGE instead
        r   r!   SESSION_COOKIE_AGE)r(   r"   r*   rc   r6   r   r   r   rc     s   zAppSettings.SESSION_COOKIE_AGEc                 C   r+   )z
        Controls the life time of the session. Set to `None` to ask the user
        ("Remember me?"), `False` to not remember, and `True` to always
        remember.
        SESSION_REMEMBERNr-   r.   r   r   r   rd   %     zAppSettings.SESSION_REMEMBERc                 C   r+   )zV
        A string defining the template extension to use, defaults to `html`.
        TEMPLATE_EXTENSIONhtmlr-   r.   r   r   r   rf   .  r>   zAppSettings.TEMPLATE_EXTENSIONc                 C   s   |  di S )NFORMSr-   r.   r   r   r   rh   5  r/   zAppSettings.FORMSc                 C   r+   )z
        Number of failed login attempts. When this number is
        exceeded, the user is prohibited from logging in for the
        specified `LOGIN_ATTEMPTS_TIMEOUT`
        LOGIN_ATTEMPTS_LIMIT   r-   r.   r   r   r   ri   9  re   z AppSettings.LOGIN_ATTEMPTS_LIMITc                 C   r+   )z
        Time period from last unsuccessful login attempt, during
        which the user is prohibited from trying to log in.  Defaults to
        5 minutes.
        LOGIN_ATTEMPTS_TIMEOUTi,  r-   r.   r   r   r   rk   B  re   z"AppSettings.LOGIN_ATTEMPTS_TIMEOUTc                 C   r+   )NEMAIL_CONFIRMATION_HMACTr-   r.   r   r   r   rl   K  r/   z#AppSettings.EMAIL_CONFIRMATION_HMACc                 C   r+   )NSALTaccountr-   r.   r   r   r   rm   O  r/   zAppSettings.SALTc                 C   r+   )NPRESERVE_USERNAME_CASINGTr-   r.   r   r   r   ro   S  r/   z$AppSettings.PRESERVE_USERNAME_CASINGc                 C   sr   ddl m} ddlm}m} | dd }|r%||}t|ts#|d|S | jd ur5| j	
| jj}|S g }|S )Nr   )ImproperlyConfigured)get_user_modelimport_attributeUSERNAME_VALIDATORSz4ACCOUNT_USERNAME_VALIDATORS is expected to be a list)django.core.exceptionsrp   allauth.utilsrq   rr   r*   
isinstancelistr   _meta	get_field
validators)r   rp   rq   rr   pathr@   r   r   r   rs   W  s$   


zAppSettings.USERNAME_VALIDATORSN)3r   r   r   r   r   r    r*   propertyr,   r0   r3   r7   r:   r<   r   r   r   r   rA   r   rC   rE   rG   rI   rR   rS   rT   r   rU   rW   rX   rY   rZ   r[   r\   r]   r^   r`   ra   r   rb   rc   rd   rf   rh   ri   rk   rl   rm   ro   rs   r   r   r   r   r      s    











































r   r   NACCOUNT_)objectr   sysapp_settingsr   modulesr   r   r   r   <module>   s      s