
    g                         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 d dlmZ  G d	 d
e
      Z G d de      ZegZy)    N)EmailAddress)get_adapter)QUERY_EMAILAppleOAuth2Adapter)ProviderAccount)OAuth2Error)OAuth2Providerc                        e Zd Z fdZ xZS )AppleAccountc                    | j                   j                  j                  d      }|r!|j                         j	                  d      s|S | j                   j                  j                  d      xs i }|j                  d      s|j                  d      r)|d   xs d d|d   xs d }|j                         }|r|S t        |          S )Nemailz@privaterelay.appleid.comname	firstNamelastName  )account
extra_datagetlowerendswithstripsuperto_str)selfr   r   	full_name	__class__s       k/var/www/django_project/virt/lib/python3.12/site-packages/allauth/socialaccount/providers/apple/provider.pyr   zAppleAccount.to_str   s    ''++G4//0KLL||&&**628b88K DHHZ$8,231T*5E5K4LMI!)I  w~    )__name__
__module____qualname__r   __classcell__)r   s   @r   r   r      s       r    r   c                   D    e Zd ZdZdZeZeZdZ	d Z
d Zd Zd Zd Zd	 Zy
)AppleProviderappleAppleTc                     t        |d         S )Nsub)str)r   datas     r   extract_uidzAppleProvider.extract_uid#   s    4;r    c                     d|j                  d      i}|j                  d      }|r*|j                  dd      |d<   |j                  dd      |d<   |S )Nr   r   r   r   
first_namer   	last_name)r   )r   r,   fieldsr   s       r   extract_common_fieldsz#AppleProvider.extract_common_fields&   sW    488G,- xx#'88K#<F< "&((:r":F;r    c                     g }|j                  d      }|j                  d      }t        |t              r|j                         dk(  }|r|j	                  t        ||d             |S )Nr   email_verifiedtrueT)r   verifiedprimary)r   
isinstancer+   r   appendr   )r   r,   retr   r6   s        r   extract_email_addressesz%AppleProvider.extract_email_addresses1   sf    !88,-h$~~'61HJJ%  
r    c                 :    dg}t         r|j                  d       |S )Nr   r   )r   r9   )r   scopess     r   get_default_scopezAppleProvider.get_default_scopeA   s    MM'"r    c                 ,   ddl m} |j                  d      }|st               j	                  d      	  |j
                  | |      }| j                  ||      }|S # t        t        j                  f$ r}t               j	                  d      |d }~ww xY w)Nr   r   id_tokeninvalid_token)
+allauth.socialaccount.providers.apple.viewsr   r   r   validation_errorget_verified_identity_datar	   requestsRequestExceptionsociallogin_from_response)r   requesttokenr   r@   identity_dataelogins           r   verify_tokenzAppleProvider.verify_tokenG   s    	
 99Z(-00AA	II.IIhM
 ..wF X667 	I-00AqH	Is   A B4BBc                     | j                   j                  j                  d      D cg c]  }|j                          c}S c c}w )N,)app	client_idsplitr   )r   auds     r   get_audszAppleProvider.get_audsX   s1    '+xx'9'9'?'?'DE		EEEs   AN)r!   r"   r#   idr   r   account_classr   oauth2_adapter_classsupports_token_authenticationr-   r2   r;   r>   rM   rT    r    r   r&   r&      s<    	BD M-$(! 	 "Fr    r&   )rE   allauth.account.modelsr   allauth.socialaccount.adapterr   "allauth.socialaccount.app_settingsr   rB   r   $allauth.socialaccount.providers.baser   -allauth.socialaccount.providers.oauth2.clientr	   /allauth.socialaccount.providers.oauth2.providerr
   r   r&   provider_classesrY   r    r   <module>ra      sB     / 5 : J @ E J ?   =FN =F@ "? r    