§
    ¤”jW!  ã                   óÐ   — d dl mZ d dlmZ d dlmZmZmZ  e¦   «         Z G d„ d¦  «        Z	 G d„ de	¦  «        Z
 G d„ d	e
¦  «        Z G d
„ de
¦  «        Z G d„ de¦  «        ZdS )é    )Úget_user_model)Ú
Permission)ÚExistsÚOuterRefÚQc                   ó:   — e Zd Zd„ Zd„ Zdd„Zdd„Zdd„Zdd„ZdS )	ÚBaseBackendc                 ó   — d S ©N© )ÚselfÚrequestÚkwargss      úk/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/contrib/auth/backends.pyÚauthenticatezBaseBackend.authenticate	   ó   € Øˆtó    c                 ó   — d S r   r   )r   Úuser_ids     r   Úget_userzBaseBackend.get_user   r   r   Nc                 ó   — t          ¦   «         S r   ©Úset©r   Úuser_objÚobjs      r   Úget_user_permissionsz BaseBackend.get_user_permissions   ó   € Ý‰uŒuˆr   c                 ó   — t          ¦   «         S r   r   r   s      r   Úget_group_permissionsz!BaseBackend.get_group_permissions   r   r   c                 ób   — h |                       ||¬¦  «        £|                      ||¬¦  «        £S ©N)r   )r   r    r   s      r   Úget_all_permissionszBaseBackend.get_all_permissions   sB   € ð
Ø×&Ò& x°SÐ&Ñ9Ô9ð
à×'Ò'¨°cÐ'Ñ:Ô:ð
ð 	
r   c                 ó4   — ||                       ||¬¦  «        v S r"   )r#   )r   r   Úpermr   s       r   Úhas_permzBaseBackend.has_perm   s    € Ø�t×/Ò/°¸cÐ/ÑBÔBÐBÐBr   r   )	Ú__name__Ú
__module__Ú__qualname__r   r   r   r    r#   r&   r   r   r   r	   r	      sˆ   € € € € € ðð ð ðð ð ðð ð ð ðð ð ð ð
ð 
ð 
ð 
ðCð Cð Cð Cð Cð Cr   r	   c                   ót   ‡ — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zdd„Z	dd	„Z
dˆ fd
„	Zdˆ fd„	Zd„ Zdd„Zd„ Zˆ xZS )ÚModelBackendz9
    Authenticates against settings.AUTH_USER_MODEL.
    Nc                 ó^  — |€|                      t          j        ¦  «        }|�|€d S 	 t          j                             |¦  «        }|                     |¦  «        r|                      |¦  «        r|S d S d S # t          j        $ r% t          ¦   «                              |¦  «         Y d S w xY wr   )	ÚgetÚ	UserModelÚUSERNAME_FIELDÚ_default_managerÚget_by_natural_keyÚcheck_passwordÚuser_can_authenticateÚDoesNotExistÚset_password)r   r   ÚusernameÚpasswordr   Úusers         r   r   zModelBackend.authenticate$   sÐ   € ØÐØ—z’z¥)Ô":Ñ;Ô;ˆHØÐ˜xÐ/ØˆFð	ÝÔ-×@Ò@ÀÑJÔJˆDð ×"Ò" 8Ñ,Ô,ð °×1KÒ1KÈDÑ1QÔ1Qð Ø�ðð ð ð øõ Ô%ð 	/ð 	/ð 	/õ ‰KŒK×$Ò$ XÑ.Ô.Ð.Ð.Ð.Ð.ð	/øøøs   ©A8 Á80B,Â+B,c                 ó$   — t          |dd¦  «        S )z{
        Reject users with is_active=False. Custom user models that don't have
        that attribute are allowed.
        Ú	is_activeT)Úgetattr©r   r8   s     r   r3   z"ModelBackend.user_can_authenticate3   s   € õ
 �t˜[¨$Ñ/Ô/Ð/r   c                 ó4   — |j                              ¦   «         S r   )Úuser_permissionsÚall)r   r   s     r   Ú_get_user_permissionsz"ModelBackend._get_user_permissions:   s   € ØÔ(×,Ò,Ñ.Ô.Ð.r   c                 ó¬   — t          ¦   «         j                             d¦  «        }d|                     ¦   «         z  }t	          j        j        di ||i¤ŽS )NÚgroupsz	group__%sr   )r   Ú_metaÚ	get_fieldÚrelated_query_namer   ÚobjectsÚfilter)r   r   Úuser_groups_fieldÚuser_groups_querys       r   Ú_get_group_permissionsz#ModelBackend._get_group_permissions=   sW   € Ý*Ñ,Ô,Ô2×<Ò<¸XÑFÔFÐØ'Ð*;×*NÒ*NÑ*PÔ*PÑPÐÝÔ!Ô(ÐIÐIÐ,=¸xÐ+HÐIÐIÐIr   c                 ó’  — |j         r	|j        s|�t          ¦   «         S d|z  }t          ||¦  «        s…|j        rt
          j                             ¦   «         }n t          | d|z  ¦  «        |¦  «        }| 	                    dd¦  «         
                    ¦   «         }t          ||d„ |D ¦   «         ¦  «         t          ||¦  «        S )zá
        Return the permissions of `user_obj` from `from_name`. `from_name` can
        be either "group" or "user" to return permissions from
        `_get_group_permissions` or `_get_user_permissions` respectively.
        Nz_%s_perm_cachez_get_%s_permissionsÚcontent_type__app_labelÚcodenamec                 ó"   — h | ]\  }}|›d |›�’ŒS )ú.r   )Ú.0ÚctÚnames      r   ú	<setcomp>z0ModelBackend._get_permissions.<locals>.<setcomp>S   s'   € Ð+WÐ+WÐ+WÁXÀRÈ°r°r°r¸4¸4Ð,@Ð+WÐ+WÐ+Wr   )r:   Úis_anonymousr   ÚhasattrÚis_superuserr   rF   r?   r;   Úvalues_listÚorder_byÚsetattr)r   r   r   Ú	from_nameÚperm_cache_nameÚpermss         r   Ú_get_permissionszModelBackend._get_permissionsB   sà   € ð Ô!ð 	 XÔ%:ð 	¸c¸oÝ‘5”5ˆLà*¨YÑ6ˆÝ�x Ñ1Ô1ð 	ØÔ$ð SÝ"Ô*×.Ò.Ñ0Ô0��àH� Ð&;¸iÑ&GÑHÔHÈÑRÔR�Ø×%Ò%Ð&?ÀÑLÔL×UÒUÑWÔWˆEÝØ˜/Ð+WÐ+WÐQVÐ+WÑ+WÔ+Wñô ð õ �x Ñ1Ô1Ð1r   c                 ó0   — |                       ||d¦  «        S )zs
        Return a set of permission strings the user `user_obj` has from their
        `user_permissions`.
        r8   ©r]   r   s      r   r   z!ModelBackend.get_user_permissionsW   s   € ð
 ×$Ò$ X¨s°FÑ;Ô;Ð;r   c                 ó0   — |                       ||d¦  «        S )zq
        Return a set of permission strings the user `user_obj` has from the
        groups they belong.
        Úgroupr_   r   s      r   r    z"ModelBackend.get_group_permissions^   s   € ð
 ×$Ò$ X¨s°GÑ<Ô<Ð<r   c                 óº   •— |j         r	|j        s|�t          ¦   «         S t          |d¦  «        s&t	          ¦   «                              |¦  «        |_        |j        S )NÚ_perm_cache)r:   rT   r   rU   Úsuperr#   rc   )r   r   r   Ú	__class__s      €r   r#   z ModelBackend.get_all_permissionse   s[   ø€ ØÔ!ð 	 XÔ%:ð 	¸c¸oÝ‘5”5ˆLÝ�x Ñ/Ô/ð 	IÝ#(¡7¤7×#>Ò#>¸xÑ#HÔ#HˆHÔ ØÔ#Ð#r   c                 óZ   •— |j         o#t          ¦   «                              |||¬¦  «        S r"   )r:   rd   r&   )r   r   r%   r   re   s       €r   r&   zModelBackend.has_perml   s*   ø€ ØÔ!ÐO¥e¡g¤g×&6Ò&6°xÀÈ3Ð&6Ñ&OÔ&OÐOr   c                 ón   ‡— |j         o-t          ˆfd„|                      |¦  «        D ¦   «         ¦  «        S )zU
        Return True if user_obj has any permissions in the given app_label.
        c              3   óZ   •K  — | ]%}|d |                      d¦  «        …         ‰k    V — Œ&d S )NrO   )Úindex)rP   r%   Ú	app_labels     €r   ú	<genexpr>z0ModelBackend.has_module_perms.<locals>.<genexpr>s   sQ   øè è € ð *
ð *
àð Ð"�4—:’:˜c‘?”?Ð"Ô# yÒ0ð*
ð *
ð *
ð *
ð *
ð *
r   )r:   Úanyr#   )r   r   rj   s     `r   Úhas_module_permszModelBackend.has_module_permso   sU   ø€ ð Ô!ð 
¥cð *
ð *
ð *
ð *
à×0Ò0°Ñ:Ô:ð*
ñ *
ô *
ñ '
ô '
ð 	
r   Tc                 ó  — t          |t          ¦  «        r7	 |                     d¦  «        \  }}nA# t          $ r t          d¦  «        ‚w xY wt          |t          ¦  «        st          d¦  «        ‚|�t          j                             ¦   «         S t          t          d¦  «        ¬¦  «        t          t          d¦  «        ¬¦  «        z  }t          |t          ¦  «        r|t          |j        ¬¦  «        z  }n|t          ||¬	¦  «        z  }t          t          j                             |¦  «        ¦  «        }|r|t          d
¬¦  «        z  }|�|t          |¬¦  «        z  }t          j                             |¦  «        S )z�
        Return users that have permission "perm". By default, filter out
        inactive users and include superusers.
        rO   zDPermission name should be in the form app_label.permission_codename.z>The `perm` argument must be a string or a permission instance.NÚpk)Úgroup__user)r8   ©ro   )rM   rL   T)rV   )r:   )Ú
isinstanceÚstrÚsplitÚ
ValueErrorr   Ú	TypeErrorr.   r0   Únoner   r   ro   r   rF   rG   )	r   r%   r:   Úinclude_superusersr   rj   rM   Úpermission_qÚuser_qs	            r   Ú	with_permzModelBackend.with_permx   s�  € õ
 �d�CÑ Ô ð 	ðØ&*§j¢j°¡o¤oÑ#�	˜8˜8øÝð ð ð Ý ð5ñô ð ðøøøõ
 ˜D¥*Ñ-Ô-ð 	ÝØPñô ð ð ˆ?ÝÔ-×2Ò2Ñ4Ô4Ð4å¥X¨d¡^¤^Ð4Ñ4Ô4µq½hÀt¹n¼nÐ7MÑ7MÔ7MÑMˆÝ�d�JÑ'Ô'ð 	TØ�A ¤˜M™MœMÑ)ˆLˆLà�A xÈÐSÑSÔSÑSˆLå�
Ô*×1Ò1°,Ñ?Ô?Ñ@Ô@ˆØð 	+Ø•a TÐ*Ñ*Ô*Ñ*ˆFØÐ Ø•a )Ð,Ñ,Ô,Ñ,ˆFåÔ)×0Ò0°Ñ8Ô8Ð8s	   —0 °A
c                 ó¤   — 	 t           j                             |¬¦  «        }n# t           j        $ r Y d S w xY w|                      |¦  «        r|nd S )Nrq   )r.   r0   r-   r4   r3   )r   r   r8   s      r   r   zModelBackend.get_user›   sd   € ð	ÝÔ-×1Ò1°WÐ1Ñ=Ô=ˆDˆDøÝÔ%ð 	ð 	ð 	Ø�4�4ð	øøøà×1Ò1°$Ñ7Ô7ÐAˆtˆt¸TÐAs   ‚ # £6µ6)NNr   )TTN)r'   r(   r)   Ú__doc__r   r3   r@   rJ   r]   r   r    r#   r&   rm   r{   r   Ú__classcell__)re   s   @r   r+   r+      s   ø€ € € € € ðð ðð ð ð ð0ð 0ð 0ð/ð /ð /ðJð Jð Jð
2ð 2ð 2ð*<ð <ð <ð <ð=ð =ð =ð =ð$ð $ð $ð $ð $ð $ðPð Pð Pð Pð Pð Pð
ð 
ð 
ð!9ð !9ð !9ð !9ðFBð Bð Bð Bð Bð Bð Br   r+   c                   ó   — e Zd Zd„ ZdS )ÚAllowAllUsersModelBackendc                 ó   — dS ©NTr   r<   s     r   r3   z/AllowAllUsersModelBackend.user_can_authenticate¤   r   r   N©r'   r(   r)   r3   r   r   r   r€   r€   £   ó#   € € € € € ðð ð ð ð r   r€   c                   ó*   — e Zd ZdZdZd„ Zd„ Zdd„ZdS )ÚRemoteUserBackendaÆ  
    This backend is to be used in conjunction with the ``RemoteUserMiddleware``
    found in the middleware module of this package, and is used when the server
    is handling authentication outside of Django.

    By default, the ``authenticate`` method creates ``User`` objects for
    usernames that don't already exist in the database.  Subclasses can disable
    this behavior by setting the ``create_unknown_user`` attribute to
    ``False``.
    Tc                 ód  — |sdS d}d}|                       |¦  «        }| j        r&t          j        j        di t          j        |i¤Ž\  }}n6	 t          j                             |¦  «        }n# t          j        $ r Y nw xY w|                      |||¬¦  «        }|  	                    |¦  «        r|ndS )ai  
        The username passed as ``remote_user`` is considered trusted. Return
        the ``User`` object with the given username. Create a new ``User``
        object if ``create_unknown_user`` is ``True``.

        Return None if ``create_unknown_user`` is ``False`` and a ``User``
        object with the given username is not found in the database.
        NF)Úcreatedr   )
Úclean_usernameÚcreate_unknown_userr.   r0   Úget_or_creater/   r1   r4   Úconfigure_userr3   )r   r   Úremote_userrˆ   r8   r6   s         r   r   zRemoteUserBackend.authenticate·   sâ   € ð ð 	ØˆFØˆØˆØ×&Ò& {Ñ3Ô3ˆð
 Ô#ð 	Ý%Ô6ÔDð ð ÝÔ+¨XÐ6ðð ‰MˆD�'�'ðÝ Ô1×DÒDÀXÑNÔN��øÝÔ)ð ð ð Ø�ðøøøà×"Ò" 7¨D¸'Ð"ÑBÔBˆØ×1Ò1°$Ñ7Ô7ÐAˆtˆt¸TÐAs   ÁA, Á,A>Á=A>c                 ó   — |S )zÆ
        Perform any cleaning on the "username" prior to using it to get or
        create the user object.  Return the cleaned username.

        By default, return the username unchanged.
        r   )r   r6   s     r   r‰   z RemoteUserBackend.clean_usernameÕ   s	   € ð ˆr   c                 ó   — |S )zp
        Configure a user and return the updated user.

        By default, return the user unmodified.
        r   )r   r   r8   rˆ   s       r   rŒ   z RemoteUserBackend.configure_userÞ   s	   € ð ˆr   N)T)r'   r(   r)   r}   rŠ   r   r‰   rŒ   r   r   r   r†   r†   ¨   s[   € € € € € ð	ð 	ð ÐðBð Bð Bð<ð ð ðð ð ð ð ð r   r†   c                   ó   — e Zd Zd„ ZdS )ÚAllowAllUsersRemoteUserBackendc                 ó   — dS r‚   r   r<   s     r   r3   z4AllowAllUsersRemoteUserBackend.user_can_authenticateè   r   r   Nrƒ   r   r   r   r‘   r‘   ç   r„   r   r‘   N)Údjango.contrib.authr   Údjango.contrib.auth.modelsr   Údjango.db.modelsr   r   r   r.   r	   r+   r€   r†   r‘   r   r   r   ú<module>r–      sI  ðØ .Ð .Ð .Ð .Ð .Ð .Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0àˆNÑÔ€	ðCð Cð Cð Cð Cñ Cô Cð Cð.ABð ABð ABð ABð AB�;ñ ABô ABð ABðHð ð ð ð  ñ ô ð ð
<ð <ð <ð <ð <˜ñ <ô <ð <ð~ð ð ð ð Ð%6ñ ô ð ð ð r   