
    _vg                         d dl mZ d dl mZ ddlmZ ddlmZ ddgZ G d d          Z	 G d	 de	ej
                  Z
d
S )    )backends)get_user_model   )settings)parse_tokenModelBackendSesameBackendMixinc                       e Zd ZdZddZdS )r	   z
    Mix this class in an authentication backend providing ``get_user(user_id)``
    to create an authentication backend usable with django-sesame.

     Nc                 8    |dS t          || j        ||          S )aH  
        If ``sesame`` is a valid token, return the user. Else, return :obj:`None`.

        If ``scope`` is set, a :ref:`scoped token <Scoped tokens>` is expected.

        If ``max_age`` is set, override the :data:`SESAME_MAX_AGE` setting.

        ``request`` is an :class:`~django.http.HttpRequest` or :obj:`None`.

        N)r   get_user)selfrequestsesamescopemax_ages        L/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/sesame/backends.pyauthenticatezSesameBackendMixin.authenticate   s$     >464=%AAA    )r   N)__name__
__module____qualname____doc__r    r   r   r	   r	   
   s8         B B B B B Br   c                       e Zd ZdZd ZdS )r   a  
    Authentication backend that authenticates users with django-sesame tokens.

    It inherits :class:`SesameBackendMixin` and Django's built-in
    :class:`~django.contrib.auth.backends.ModelBackend`.

    Extending the default value of the :setting:`AUTHENTICATION_BACKENDS` setting
    to add  ``"sesame.backends.ModelBackend"`` looks like:

    .. code-block:: python

        AUTHENTICATION_BACKENDS = [
            "django.contrib.auth.backends.ModelBackend",
            "sesame.backends.ModelBackend",
        ]

    c                     t                      }	  |j        j        di t          j        |i}n# |j        $ r Y dS w xY w|                     |          r|S dS )z
        Fetch user from the database by primary key.

        The field used by django-sesame as a primary key can be configured with
        the :data:`SESAME_PRIMARY_KEY_FIELD` setting.

        Return :obj:`None` if no active user is found.

        Nr   )r   _default_managergetr   PRIMARY_KEY_FIELDDoesNotExistuser_can_authenticate)r   user_idUserusers       r   r   zModelBackend.get_user6   s~     	,4(,UU0JG/TUUDD  	 	 	44	%%d++ 	K4s   / 
==N)r   r   r   r   r   r   r   r   r   r   #   s-         $    r   N)django.contrib.authr   auth_backendsr   r   r   tokensr   __all__r	   r   r   r   r   <module>r)      s    9 9 9 9 9 9 . . . . . .            /
0B B B B B B B B2% % % % %%}'A % % % % %r   