o
    h                     @   s:   d dl mZ d dlmZ G dd dZedZdd ZdS )	    )	timedelta)Optionalc                   @   s\  e Z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efddZedefddZedefd d!Zedefd"d#Zedefd$d%Zedee fd&d'Zedefd(d)Zedefd*d+Zedefd,d-Zedee fd.d/Zd0S )1AppSettingsc                 C   s
   || _ d S N)prefix)selfr    r   S/var/www/html/env_mimamsha/lib/python3.10/site-packages/allauth/mfa/app_settings.py__init__   s   
zAppSettings.__init__c                 C   s   ddl m} || j| |S )Nr   )get_setting)allauth.utilsr   r   )r   namedfltr   r   r   r	   _setting	   s   zAppSettings._settingc                 C      |  ddS )NADAPTERz%allauth.mfa.adapter.DefaultMFAAdapterr   r   r   r   r	   r         zAppSettings.ADAPTERc                 C   s   |  di S )NFORMSr   r   r   r   r	   r      r   zAppSettings.FORMSc                 C   r   )z/
        The number of recovery codes.
        RECOVERY_CODE_COUNT
   r   r   r   r   r	   r         zAppSettings.RECOVERY_CODE_COUNTc                 C   r   )z=
        The number of digits of each recovery code.
        RECOVERY_CODE_DIGITS   r   r   r   r   r	   r      r   z AppSettings.RECOVERY_CODE_DIGITSc                 C   r   )zL
        The period that a TOTP code will be valid for, in seconds.
        TOTP_PERIOD   r   r   r   r   r	   r   $   r   zAppSettings.TOTP_PERIODc                 C   r   )z5
        The number of digits for TOTP codes
        TOTP_DIGITS   r   r   r   r   r	   r   +   r   zAppSettings.TOTP_DIGITSc                 C   r   )z
        The issuer.
        TOTP_ISSUER r   r   r   r   r	   r   2   r   zAppSettings.TOTP_ISSUERc                 C   s:   ddl m} ddlm} | dd}|js|r|d|S )zX
        Don't use this on production. Useful for development & E2E tests only.
        r   settings)ImproperlyConfiguredTOTP_INSECURE_BYPASS_CODENz:MFA_TOTP_INSECURE_BYPASS_CODE is for testing purposes only)django.confr"   django.core.exceptionsr#   r   DEBUG)r   r"   r#   coder   r   r	   r$   9   s   
z%AppSettings.TOTP_INSECURE_BYPASS_CODEc                 C   r   )z
        The number of time steps in the past or future to allow. Lower values are more secure, but more likely to fail due to clock drift.
        TOTP_TOLERANCEr   r   r   r   r   r	   r)   H   r   zAppSettings.TOTP_TOLERANCEc                 C   s   ddg}|  d|S )Nrecovery_codestotpSUPPORTED_TYPESr   )r   r   r   r   r	   r,   O   s   zAppSettings.SUPPORTED_TYPESc                 C   r   )NWEBAUTHN_ALLOW_INSECURE_ORIGINFr   r   r   r   r	   r-   T   r   z*AppSettings.WEBAUTHN_ALLOW_INSECURE_ORIGINreturnc                 C      d| j v o
| ddS )NwebauthnPASSKEY_LOGIN_ENABLEDFr,   r   r   r   r   r	   r1   X      z!AppSettings.PASSKEY_LOGIN_ENABLEDc                 C   r/   )Nr0   PASSKEY_SIGNUP_ENABLEDFr2   r   r   r   r	   r4   ^   r3   z"AppSettings.PASSKEY_SIGNUP_ENABLEDc                 C   r   )NTRUST_ENABLEDFr   r   r   r   r	   r5   d   r   zAppSettings.TRUST_ENABLEDc                 C   s*   |  dtdd}t|tst|d}|S )NTRUST_COOKIE_AGE   )days)seconds)r   r   
isinstance)r   ager   r   r	   r6   h   s   

zAppSettings.TRUST_COOKIE_AGEc                 C   r   )NTRUST_COOKIE_NAMEmfa_trustedr   r   r   r   r	   r<   o   r   zAppSettings.TRUST_COOKIE_NAMEc                 C      ddl m} | d|jS )Nr   r!   TRUST_COOKIE_DOMAIN)r%   r"   r   SESSION_COOKIE_DOMAINr   r"   r   r   r	   r?   s      zAppSettings.TRUST_COOKIE_DOMAINc                 C   r>   )Nr   r!   TRUST_COOKIE_HTTPONLY)r%   r"   r   SESSION_COOKIE_HTTPONLYrA   r   r   r	   rC   y   rB   z!AppSettings.TRUST_COOKIE_HTTPONLYc                 C   r>   )Nr   r!   TRUST_COOKIE_PATH)r%   r"   r   SESSION_COOKIE_PATHrA   r   r   r	   rE      rB   zAppSettings.TRUST_COOKIE_PATHc                 C   r>   )Nr   r!   TRUST_COOKIE_SAMESITE)r%   r"   r   SESSION_COOKIE_SAMESITErA   r   r   r	   rG      rB   z!AppSettings.TRUST_COOKIE_SAMESITEc                 C   r>   )Nr   r!   TRUST_COOKIE_SECURE)r%   r"   r   SESSION_COOKIE_SECURErA   r   r   r	   rI      rB   zAppSettings.TRUST_COOKIE_SECUREN)__name__
__module____qualname__r
   r   propertyr   r   r   r   r   r   r   r$   r)   r,   r-   boolr1   r4   r5   r   r6   strr<   r   r?   rC   rE   rG   rI   r   r   r   r	   r      sZ    










r   MFA_c                 C   s
   t t| S r   )getattr_app_settings)r   r   r   r	   __getattr__   s   
rT   N)datetimer   typingr   r   rS   rT   r   r   r   r	   <module>   s     