o
    "4g7
                     @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZ G d	d
 d
eZG dd deZegZdS )    N)HttpResponseRedirect)reverse)	urlencode)EmailAddress)get_adapter)ProviderProviderAccount)AuthenticateFormc                   @   s   e Zd ZdS )DummyAccountN)__name__
__module____qualname__ r   r   w/var/www/html/authentication-server/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/dummy/provider.pyr
      s    r
   c                   @   sV   e Zd ZdZdZeZdZdZdZ	dd Z
dd Zd	d
 ZdddZdd Zdd ZdS )DummyProviderdummyDummyFTc                 K   s    t d}|r|d t| }|S )Ndummy_login?)r   r   )selfrequestkwargsurlr   r   r   get_login_url   s   zDummyProvider.get_login_urlc                 C   s   t |d S )Nid)str)r   datar   r   r   extract_uid   s   zDummyProvider.extract_uidc                 C   sP   i }| dr| d|d< | dr| d|d< | dr&| d|d< |S )N
first_name	last_nameusername)get)r   r   retr   r   r   extract_common_fields"   s   


z#DummyProvider.extract_common_fieldsNc                 K   s6   | j ||f||d|}ttdd td|i S )N)next_urlr   dummy_authenticater   state)stash_redirect_stater   r   r   )r   r   processr$   r   r   state_idr   r   r   redirect,   s   zDummyProvider.redirectc                 C   s4   g }| d}|r| d}|t||dd |S )Nemailemail_verifiedT)r+   verifiedprimary)r!   appendr   )r   r   	addressesr+   r,   r   r   r   extract_email_addresses8   s   

z%DummyProvider.extract_email_addressesc                 C   s^   | d}|r)zt|}W n
 tjy   Y nw t|d}| r)| ||jS t 	d)Nid_token)r   invalid_token)
r!   jsonloadsJSONDecodeErrorr	   is_validsociallogin_from_responsecleaned_datar   validation_error)r   r   tokenr2   r   formr   r   r   verify_tokenF   s   

zDummyProvider.verify_token)NN)r   r   r   r   namer
   account_class	uses_appssupports_redirectsupports_token_authenticationr   r   r#   r*   r1   r=   r   r   r   r   r      s    

r   )r4   django.httpr   django.urlsr   django.utils.httpr   allauth.account.modelsr   allauth.socialaccount.adapterr   $allauth.socialaccount.providers.baser   r   +allauth.socialaccount.providers.dummy.formsr	   r
   r   provider_classesr   r   r   r   <module>   s    
E