o
    i                     @   s@   d dl mZ d dlmZ d dlmZ eeZG dd deZ	dS )    )_UserInfoRetriever)
get_logger)configc                       sR   e Zd Zd fdd	Zdd Zdd Z fdd	Z fd
dZ fddZ  Z	S )_DjangoUserInfoRetrieverNc                    s<   t t| | |r|ni | _| jr|s|   d S d S d S N)superr   __init__credentials_try_load_user)selfuserr	   	__class__ X/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/contrib/internal/django/user.pyr   
   s
   
z!_DjangoUserInfoRetriever.__init__c                 C   s  d | _ zddlm} W n ty   tjddd Y d S w z| | _ | j s(W d S W n ty:   tjddd Y d S w tj}|rG| j	
|d nd }|rM|sh| jD ]}|| j	v r`|}| j	| } nqPtd d S z| j jj
d	i ||i| _W d S  | j jy   tjddd Y d S w )
Nr   )get_user_modelz2user_exist: Could not import Django get_user_modelTexc_infoz(user_exist: Could not get the user modelzGtry_load_user_model: could not get the login field from the credentialsz.try_load_user_model: could not load user modelr   )
user_modeldjango.contrib.authr   ImportErrorlogdebug	Exception
asm_config_user_model_login_fieldr	   getpossible_login_fieldsobjectsr   DoesNotExist)r   r   login_fieldlogin_field_valuepossible_login_fieldr   r   r   r
      s@   



 z'_DjangoUserInfoRetriever._try_load_userc                 C   s
   | j d uS r   )r   r   r   r   r   user_exists6   s   
z$_DjangoUserInfoRetriever.user_existsc                    :   t | jdrtjst| j}t| j|jd S tt| 	 S )NUSERNAME_FIELD)
hasattrr   r   _user_model_name_fieldtypegetattrr&   r   r   get_usernamer   	user_typer   r   r   r+   9      
z%_DjangoUserInfoRetriever.get_usernamec                    sz   t js6t| jdr z| j W S  ty   tjddd Y nw t| jdr6t| jdr6d| jj| jj	f S t
t|  S )Nget_full_namez7User model get_full_name member produced an exception: Tr   
first_name	last_namez%s %s)r   r(   r'   r   r/   r   r   r   r0   r1   r   r   get_namer#   r   r   r   r2   @   s   z!_DjangoUserInfoRetriever.get_namec                    r%   )NEMAIL_FIELD)
r'   r   r   r(   r)   r*   r3   r   r   get_user_emailr,   r   r   r   r4   M   r.   z'_DjangoUserInfoRetriever.get_user_emailr   )
__name__
__module____qualname__r   r
   r$   r+   r2   r4   __classcell__r   r   r   r   r   	   s    %r   N)
ddtrace.appsec._utilsr   ddtrace.internal.loggerr   ddtrace.internal.settings.asmr   r   r5   r   r   r   r   r   r   <module>   s
    