o
    "4g                     @   s   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 eedi di ZG d	d
 d
eZG dd deZegZdS )    )Optional)settings)EmailAddress)ProviderAccount)MediaWikiOAuth2Adapter)OAuth2ProviderSOCIALACCOUNT_PROVIDERS	mediawikic                   @   s   e Zd Zdd ZdS )MediaWikiAccountc                 C   s6   t dd}| jjd}|sd S |j|dddS )NUSERPAGE_TEMPLATEz/https://meta.wikimedia.org/wiki/User:{username}username _)r   )r   getaccount
extra_dataformatreplace)selfuserpager    r   {/var/www/html/authentication-server/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/mediawiki/provider.pyget_profile_url   s   z MediaWikiAccount.get_profile_urlN)__name__
__module____qualname__r   r   r   r   r   r
      s    r
   c                   @   sV   e Zd ZdZdZeZeZe	de
dee fddZdd Zd	d
 Zdd Zdd ZdS )MediaWikiProviderr	   	MediaWikidatareturnc                 C   s   |  dr
|  dS d S )Nconfirmed_emailemail)r   )r   r   r   r   
_get_email!   s   

zMediaWikiProvider._get_emailc                 C   s   t |d S )Nsub)strr   r   r   r   r   extract_uid'   s   zMediaWikiProvider.extract_uidc                 C       t | ||d|ddS )Nrealnamer   )r!   r(   r   dictr"   r   r%   r   r   r   extract_extra_data*   
   z$MediaWikiProvider.extract_extra_datac                 C   r'   )Nr   r(   )r!   r   namer)   r%   r   r   r   extract_common_fields1   r,   z'MediaWikiProvider.extract_common_fieldsc                 C   s   t | |dddgS )NT)r!   verifiedprimary)r   r"   r%   r   r   r   extract_email_addresses8   s   z)MediaWikiProvider.extract_email_addressesN)r   r   r   idr-   r
   account_classr   oauth2_adapter_classstaticmethodr*   r   r$   r"   r&   r+   r.   r1   r   r   r   r   r      s    r   N)typingr   django.confr   allauth.account.modelsr   $allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.mediawiki.viewsr   /allauth.socialaccount.providers.oauth2.providerr   getattrr   r
   r   provider_classesr   r   r   r   <module>   s    
!