o
    RDip                     @  s~   d dl mZ d dlZd dlmZmZ ddlmZ ddlm	Z	 ddl
mZmZ er.dd	lmZ eeZd
ZG dd deZdS )    )annotationsN)TYPE_CHECKINGAny   )ER_NO_PASSWORD)ProgrammingError   )AuthByPluginAuthType)SnowflakeConnectionMFATOKENc                      sj   e Zd ZdZedddZ	d d! fddZd"ddZed#ddZd$ddZ	d%ddZ
d&ddZ  ZS )'AuthByUsrPwdMfaz(Username & password & mfa authenticator.returnstrc                 C  s   dS )Nz	********* selfr   r   [/var/www/Datamplify/venv/lib/python3.10/site-packages/snowflake/connector/auth/usrpwdmfa.pyassertion_content   s   z!AuthByUsrPwdMfa.assertion_contentNpassword	mfa_token
str | NoneNonec                   s"   t  jdi | || _|| _dS )z9Initializes and instance with a password and a mfa token.Nr   )super__init__	_password
_mfa_token)r   r   r   kwargs	__class__r   r   r      s   
zAuthByUsrPwdMfa.__init__c                 C  s   d | _ d | _d S N)r   r   r   r   r   r   reset_secrets%   s   
zAuthByUsrPwdMfa.reset_secretsr
   c                 C  s   t jS r    )r
   USR_PWD_MFAr   r   r   r   type_)   s   zAuthByUsrPwdMfa.type_connr   r   r   c                K  s$   |j r|j jr|j j| _d S d S d S r    )_restr   r   )r   r$   r   r   r   r   prepare-   s   zAuthByUsrPwdMfa.preparedict[str, bool]c                 K  s   ddiS )NsuccessFr   )r   r   r   r   r   reauthenticate6   s   zAuthByUsrPwdMfa.reauthenticatebodydict[Any, Any]c                 C  s<   | j s	tdtd| j |d d< | jr| j|d d< dS dS )zSets the password and mfa_token if available.

        Don't set body['data']['AUTHENTICATOR'], since this is still snowflake default authenticator.
        z6Password for username password authenticator is empty.)msgerrnodataPASSWORDTOKENN)r   r   r   r   )r   r*   r   r   r   update_body9   s   zAuthByUsrPwdMfa.update_body)r   r   r    )r   r   r   r   r   r   )r   r   )r   r
   )r$   r   r   r   r   r   )r   r'   )r*   r+   r   r   )__name__
__module____qualname____doc__propertyr   r   r!   r#   r&   r)   r1   __classcell__r   r   r   r   r      s    


	r   )
__future__r   loggingtypingr   r   	errorcoder   errorsr   	by_pluginr	   r
    r   	getLoggerr2   logger	MFA_TOKENr   r   r   r   r   <module>   s   
