o
    &zh!                     @   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                   @   sn  e Zd Zdd Zdd Zedd Zedef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d0d1Zd2S )3AppSettingsc                 C   s
   || _ d S N)prefix)selfr    r   S/var/www/html/kangema/venv/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.ADAPTERreturnc                 C   r   )NALLOW_UNVERIFIED_EMAILFr   r   r   r   r	   r      r   z"AppSettings.ALLOW_UNVERIFIED_EMAILc                 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!   6   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&   =   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+   L   r   zAppSettings.TOTP_TOLERANCEc                 C   s   ddg}|  d|S )Nrecovery_codestotpSUPPORTED_TYPESr   )r   r   r   r   r	   r.   S   s   zAppSettings.SUPPORTED_TYPESc                 C   r   )NWEBAUTHN_ALLOW_INSECURE_ORIGINFr   r   r   r   r	   r/   X   r   z*AppSettings.WEBAUTHN_ALLOW_INSECURE_ORIGINc                 C      d| j v o
| ddS )NwebauthnPASSKEY_LOGIN_ENABLEDFr.   r   r   r   r   r	   r2   \      z!AppSettings.PASSKEY_LOGIN_ENABLEDc                 C   r0   )Nr1   PASSKEY_SIGNUP_ENABLEDFr3   r   r   r   r	   r5   b   r4   z"AppSettings.PASSKEY_SIGNUP_ENABLEDc                 C   r   )NTRUST_ENABLEDFr   r   r   r   r	   r6   h   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	   r7   l   s   

zAppSettings.TRUST_COOKIE_AGEc                 C   r   )NTRUST_COOKIE_NAMEmfa_trustedr   r   r   r   r	   r=   s   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@   w      zAppSettings.TRUST_COOKIE_DOMAINc                 C   r?   )Nr   r#   TRUST_COOKIE_HTTPONLY)r'   r$   r   SESSION_COOKIE_HTTPONLYrB   r   r   r	   rD   }   rC   z!AppSettings.TRUST_COOKIE_HTTPONLYc                 C   r?   )Nr   r#   TRUST_COOKIE_PATH)r'   r$   r   SESSION_COOKIE_PATHrB   r   r   r	   rF      rC   zAppSettings.TRUST_COOKIE_PATHc                 C   r?   )Nr   r#   TRUST_COOKIE_SAMESITE)r'   r$   r   SESSION_COOKIE_SAMESITErB   r   r   r	   rH      rC   z!AppSettings.TRUST_COOKIE_SAMESITEc                 C   r?   )Nr   r#   TRUST_COOKIE_SECURE)r'   r$   r   SESSION_COOKIE_SECURErB   r   r   r	   rJ      rC   zAppSettings.TRUST_COOKIE_SECUREN) __name__
__module____qualname__r
   r   propertyr   boolr   r   r   r   r   r   r!   r&   r+   r.   r/   r2   r5   r6   r   r7   strr=   r   r@   rD   rF   rH   rJ   r   r   r   r	   r      s^    










r   MFA_c                 C   s
   t t| S r   )getattr_app_settings)r   r   r   r	   __getattr__   s   
rU   N)datetimer   typingr   r   rT   rU   r   r   r   r	   <module>   s     