
    ɯeip                        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j                  e      Zd
Z G d de      Zy)    )annotationsN)TYPE_CHECKINGAny   )ER_NO_PASSWORD)ProgrammingError   )AuthByPluginAuthType)SnowflakeConnectionMFATOKENc                       e Zd ZdZed	d       Z	 d
	 	 	 	 	 d fdZddZedd       Z	 	 	 	 	 	 ddZ	ddZ
ddZ xZS )AuthByUsrPwdMfaz(Username & password & mfa authenticator.c                     y)Nz	********* selfs    d/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/snowflake/connector/auth/usrpwdmfa.pyassertion_contentz!AuthByUsrPwdMfa.assertion_content   s        c                @    t        |   di | || _        || _        y)z9Initializes and instance with a password and a mfa token.Nr   )super__init__	_password
_mfa_token)r   password	mfa_tokenkwargs	__class__s       r   r   zAuthByUsrPwdMfa.__init__   s#     	"6"%-&/r   c                     d | _         d | _        y N)r   r   r   s    r   reset_secretszAuthByUsrPwdMfa.reset_secrets%   s    r   c                "    t         j                  S r!   )r   USR_PWD_MFAr   s    r   type_zAuthByUsrPwdMfa.type_)   s    ###r   c                   |j                   r3|j                   j                  r|j                   j                  | _        y y y r!   )_restr   r   )r   connr   s      r   preparezAuthByUsrPwdMfa.prepare-   s/     ::$**.."jj22DO /:r   c                
    ddiS )NsuccessFr   )r   r   s     r   reauthenticatezAuthByUsrPwdMfa.reauthenticate6   s    5!!r   c                    | j                   st        dt              | j                   |d   d<   | j                  r| j                  |d   d<   yy)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   bodys     r   update_bodyzAuthByUsrPwdMfa.update_body9   sP    
 ~~"L$  $(>>VZ ??$(OODL! r   )returnstrr!   )r   r6   r   z
str | Noner5   None)r5   r7   )r5   r   )r(   r   r   r   r5   r7   )r5   zdict[str, bool])r3   zdict[Any, Any]r5   r7   )__name__
__module____qualname____doc__propertyr   r   r"   r%   r)   r,   r4   __classcell__)r   s   @r   r   r      s    2  !%	0	0 	0
 
	0 $ $3 "3 	3
 
3"4r   r   )
__future__r   loggingtypingr   r   	errorcoder   errorsr   	by_pluginr
   r    r   	getLoggerr8   logger	MFA_TOKENr   r   r   r   <module>rH      s@    "  % & % -&			8	$	24l 24r   