o
    b
                     @   s|   d dl mZmZ d dl mZmZmZ d dlmZmZm	Z	 G dd deZ
G dd deZG dd	 d	eZG d
d de	ZdS )    )ColumnUniqueConstraint)StringIntegerText)ClientMixinTemporaryCredentialMixinTokenCredentialMixinc                   @   sR   e Zd ZeedddZeedddZeedddZd	d
 Z	dd Z
dd ZdS )OAuth1ClientMixin0   Tindexx   Fnullable )r   defaultc                 C      | j S N)default_redirect_uriself r   f/var/www/secure340b-portal/env/lib/python3.10/site-packages/authlib/integrations/sqla_oauth1/mixins.pyget_default_redirect_uri      z*OAuth1ClientMixin.get_default_redirect_uric                 C   r   r   )client_secretr   r   r   r   get_client_secret   r   z#OAuth1ClientMixin.get_client_secretc                 C   s   d S r   r   r   r   r   r   get_rsa_public_key   s   z$OAuth1ClientMixin.get_rsa_public_keyN)__name__
__module____qualname__r   r   	client_idr   r   r   r   r   r   r   r   r   r   r
   
   s    r
   c                   @   s   e Zd ZeedddZeeddddZeedZeedZee	ddZ
dd	 Zd
d Zdd Zdd Zdd Zdd Zdd ZdS )OAuth1TemporaryCredentialMixinr   Tr   T   uniquer   r   )r   c                 C   s   t | dr| jS t )a
  A method to get the grant user information of this temporary
        credential. For instance, grant user is stored in database on
        ``user_id`` column::

            def get_user_id(self):
                return self.user_id

        :return: User ID
        user_id)hasattrr'   NotImplementedErrorr   r   r   r   get_user_id    s   

z*OAuth1TemporaryCredentialMixin.get_user_idc                 C       t | drt| d| d S t Nr'   r(   setattrr)   r   r'   r   r   r   set_user_id/      
z*OAuth1TemporaryCredentialMixin.set_user_idc                 C   r   r   )r"   r   r   r   r   get_client_id5   r   z,OAuth1TemporaryCredentialMixin.get_client_idc                 C   r   r   )oauth_callbackr   r   r   r   get_redirect_uri8   r   z/OAuth1TemporaryCredentialMixin.get_redirect_uric                 C   s
   | j |kS r   )oauth_verifier)r   Zverifierr   r   r   check_verifier;   s   
z-OAuth1TemporaryCredentialMixin.check_verifierc                 C   r   r   oauth_tokenr   r   r   r   get_oauth_token>   r   z.OAuth1TemporaryCredentialMixin.get_oauth_tokenc                 C   r   r   oauth_token_secretr   r   r   r   get_oauth_token_secretA   r   z5OAuth1TemporaryCredentialMixin.get_oauth_token_secretN)r   r    r!   r   r   r"   r8   r;   r5   r   r3   r*   r0   r2   r4   r6   r9   r<   r   r   r   r   r#      s    r#   c                   @   sX   e Zd ZeddddddfZeeddd	Zeedd	Z	eeddd	Z
eed
ZdS )OAuth1TimestampNonceMixinr"   	timestampnoncer8   Zunique_nonce)namer   Fr   r$   N)r   r    r!   r   Z__table_args__r   r   r"   r   r>   r?   r8   r   r   r   r   r=   E   s    r=   c                   @   sR   e Zd ZeedddZeeddddZeedZdd Zdd	 Z	d
d Z
dS )OAuth1TokenCredentialMixinr   Tr   r$   r%   c                 C   r+   r,   r-   r/   r   r   r   r0   W   r1   z&OAuth1TokenCredentialMixin.set_user_idc                 C   r   r   r7   r   r   r   r   r9   ]   r   z*OAuth1TokenCredentialMixin.get_oauth_tokenc                 C   r   r   r:   r   r   r   r   r<   `   r   z1OAuth1TokenCredentialMixin.get_oauth_token_secretN)r   r    r!   r   r   r"   r8   r;   r0   r9   r<   r   r   r   r   rA   R   s    rA   N)Z
sqlalchemyr   r   r   r   r   Zauthlib.oauth1r   r   r	   r
   r#   objectr=   rA   r   r   r   r   <module>   s    ,