+
    Sj2                         ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHtH	t	 ]! 4       t
 ! R R4      t ! R R]4      t ! R	 R
]4      t ! R R]4      t ! R R]4      tR# )    )sync_to_async)get_user_model)
Permission)ExistsOuterRefQc                      a  ] tR t^
t o R tR tR tR tRR ltRR lt	RR lt
RR	 ltRR
 ltRR ltRR ltRR ltRtV tR# )BaseBackendc                    R # N selfrequestkwargss   &&,Q/var/www/idalgo/venv/lib/python3.14/site-packages/django/contrib/auth/backends.pyauthenticateBaseBackend.authenticate           c                V   "   \        V P                  4      ! V3/ VB G R j  xL
 #  L5ir   )r   r   r   s   &&,r   aauthenticateBaseBackend.aauthenticate   s&     "4#4#45gHHHHH    )')c                    R # r   r   r   user_ids   &&r   get_userBaseBackend.get_user   r   r   c                T   "   \        V P                  4      ! V4      G R j  xL
 #  L5ir   )r   r   r   s   &&r   	aget_userBaseBackend.aget_user   s     "4==1'::::   (&(Nc                    \        4       # r   setr   user_objobjs   &&&r   get_user_permissions BaseBackend.get_user_permissions   	    ur   c                T   "   \        V P                  4      ! W4      G R j  xL
 #  L5ir   )r   r*   r'   s   &&&r   aget_user_permissions!BaseBackend.aget_user_permissions   s!     "4#<#<=hLLLLr#   c                    \        4       # r   r%   r'   s   &&&r   get_group_permissions!BaseBackend.get_group_permissions   r,   r   c                T   "   \        V P                  4      ! W4      G R j  xL
 #  L5ir   )r   r1   r'   s   &&&r   aget_group_permissions"BaseBackend.aget_group_permissions    s!     "4#=#=>xMMMMr#   c                N    0 V P                  WR 7      mV P                  WR 7      m# r)   )r*   r1   r'   s   &&&r   get_all_permissionsBaseBackend.get_all_permissions#   s8    
&&x&9
''':
 	
r   c                ~   "   0 V P                  WR 7      G Rj  xL
 mV P                  WR 7      G Rj  xL
 m#  L L5ir8   N)r.   r4   r'   s   &&&r   aget_all_permissions BaseBackend.aget_all_permissions)   sG     
--h-@@
..x.AA
 	
@As   =9=;==c                *    W P                  WR 7      9   # r7   )r9   r   r(   permr)   s   &&&&r   has_permBaseBackend.has_perm/   s    ///BBBr   c                D   "   Y P                  W4      G R j  xL
 9   #  L5ir   )r=   r@   s   &&&&r   	ahas_permBaseBackend.ahas_perm2   s     66xEEEEEs     r   r   )__name__
__module____qualname____firstlineno__r   r   r   r!   r*   r.   r1   r4   r9   r=   rB   rE   __static_attributes____classdictcell____classdict__s   @r   r
   r
   
   sL     I;MN

CF Fr   r
   c                      a a ] tR t^6t oRtRR ltRR ltR tR tR t	R t
R tRR	 ltRR
 ltRR ltRR ltRV 3R lltRV 3R lltRV 3R lltR tR tRR ltR tR tRtVtV ;t# )ModelBackendz1
Authenticates against settings.AUTH_USER_MODEL.
c                n   Vf    VP                  \        P                  4      pVe   Vf   R #  \        P                  P	                  V4      pVP                  V4      '       d   V P                  V4      '       d   V# R # R #   \        P                   d    \        4       P                  T4        R # i ; i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   ModelBackend.authenticate;   s    zz)":":;Hx/	--@@JD ""8,,1K1KD1Q1Q 2R, %% 	/ K$$X.	/s   B .B43B4c                  "   Vf    VP                  \        P                  4      pVe   Vf   R #  \        P                  P	                  V4      G R j  xL
 pVP                  V4      G R j  xL
 '       d   V P                  V4      '       d   V# R # R #  L@ L)  \        P                   d    \        4       P                  T4        R # i ; i5ir   )	rR   rS   rT   rU   aget_by_natural_keyacheck_passwordrX   rY   rZ   r[   s   &&&&, r   r   ModelBackend.aauthenticateJ   s     zz)":":;Hx/
	"33GGQQD ))(3338R8R9 9 93 R 4 %% 	/ K$$X.	/sX   .C"B BB C,B-	C7CCB C.C
C	C

Cc                    \        VRR4      # )zc
Reject users with is_active=False. Custom user models that don't have
that attribute are allowed.
	is_activeT)getattrr   r^   s   &&r   rX   "ModelBackend.user_can_authenticate[   s    
 t[$//r   c                6    VP                   P                  4       # r   )user_permissionsallr   r(   s   &&r   _get_user_permissions"ModelBackend._get_user_permissionsb   s    ((,,..r   c                r    \         P                  P                  VP                  P	                  4       R 7      # ))	group__in)r   objectsfiltergroupsrk   rl   s   &&r   _get_group_permissions#ModelBackend._get_group_permissionse   s)    !!((8??3F3F3H(IIr   c                   VP                   '       d   VP                  '       g   Ve   \        4       # RV,          p\        W4      '       g   VP                  '       d    \
        P                  P                  4       pM\        V RV,          4      ! V4      pVP                  RR4      P                  4       p\        YV UUu0 uF  w  rgV: RV: 2kK  	  upp4       \        W4      # u uppi )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.
_%s_perm_cache_get_%s_permissionscontent_type__app_labelcodename.re   is_anonymousr&   hasattris_superuserr   rq   rk   rf   values_listorder_bysetattrr   r(   r)   	from_nameperm_cache_namepermsctnames   &&&&    r   _get_permissionsModelBackend._get_permissionsh   s     !!!X%:%:%:co5L*Y6x11$$$"**..0&;i&GHR%%&?LUUWEQV+WQVXRr4,@QV+W x11 ,Xs   C)c                  "   VP                   '       d   VP                  '       g   Ve   \        4       # RV,          p\        W4      '       g   VP                  '       d    \
        P                  P                  4       pM\        V RV,          4      ! V4      pVP                  RR4      P                  4       p\        TTV UUu0 u Rj  xL
 w  rgV: RV: 2kK  \        W4      #  LDMu uppi upp4       L5i)zSee _get_permissions().Nrw   rx   ry   rz   r{   r|   r   s   &&&&    r   _aget_permissionsModelBackend._aget_permissions}   s     !!!X%:%:%:co5L*Y6x11$$$"**..0&;i&GHR%%&?LUUWE<ABBB%x11 CBsG   $C;9C;!A$C;C,C*C(C*C,C;(C**C,+C;c                &    V P                  WR4      # )z[
Return a set of permission strings the user `user_obj` has from their
`user_permissions`.
r^   r   r'   s   &&&r   r*   !ModelBackend.get_user_permissions   s    
 $$XF;;r   c                B   "   V P                  WR4      G Rj  xL
 #  L5i)zSee get_user_permissions().r^   Nr   r'   s   &&&r   r.   "ModelBackend.aget_user_permissions   s     ++H6BBBB   c                &    V P                  WR4      # )zY
Return a set of permission strings the user `user_obj` has from the
groups they belong.
groupr   r'   s   &&&r   r1   "ModelBackend.get_group_permissions   s    
 $$XG<<r   c                B   "   V P                  WR4      G Rj  xL
 #  L5i)zSee get_group_permissions().r   Nr   r'   s   &&&r   r4   #ModelBackend.aget_group_permissions   s     ++H7CCCCr   c                   < VP                   '       d   VP                  '       g   Ve   \        4       # \        VR4      '       g   \        SV `  V4      Vn        VP                  # )N_perm_cache)re   r}   r&   r~   superr9   r   )r   r(   r)   	__class__s   &&&r   r9    ModelBackend.get_all_permissions   sP    !!!X%:%:%:co5Lx//#(7#>x#HH ###r   c                N   < VP                   ;'       d    \        SV `	  WVR 7      # r7   )re   r   rB   r   r(   rA   r)   r   s   &&&&r   rB   ModelBackend.has_perm   s&    !!OOeg&6x3&6&OOr   c                j   <"   VP                   ;'       d    \        SV `	  WVR 7      G Rj  xL
 #  L5ir<   )re   r   rE   r   s   &&&&r   rE   ModelBackend.ahas_perm   s0     !!VVEG,=hRU,=,V&VV&Vs   )313c                   a VP                   ;'       dY    \        ;QJ d.    V3R lV P                  V4       4       F  '       g   K   R# 	  R# ! V3R lV P                  V4       4       4      # )zE
Return True if user_obj has any permissions in the given app_label.
c              3   R   <"   T F  pVR VP                  R4       S8H  x  K  	  R # 5iNr{   index.0rA   	app_labels   & r   	<genexpr>0ModelBackend.has_module_perms.<locals>.<genexpr>   s-      *
: "4::c?#y0:   $'TF)re   anyr9   r   r(   r   s   &&fr   has_module_permsModelBackend.has_module_perms   sh     !! 
 
cc *
00:*
cc 	
c 	
c *
00:*
 '
 	
r   c                  a"   VP                   ;'       di    \        ;QJ d6    V3R lV P                  V4      G Rj  xL
  4       F  '       g   K   R# 	  R# ! V3R lV P                  V4      G Rj  xL
  4       4      #  LB L5i)zSee has_module_perms()c              3   R   <"   T F  pVR VP                  R4       S8H  x  K  	  R # 5ir   r   r   s   & r   r   1ModelBackend.ahas_module_perms.<locals>.<genexpr>   s-      *
A "4::c?#y0Ar   NTF)re   r   r=   r   s   &&fr   ahas_module_permsModelBackend.ahas_module_perms   sx     !! 
 
cc *
"77AAA*
cc 	
c 	
c *
"77AAA*
 '
 	
As,   BBB B!B2B
3BBc                   \        V\        4      '       d    VP                  R4      w  rVM!\        V\        4      '       g   \        R4      hVe   \        P                  P                  4       # \        \        R4      R7      \        \        R4      R7      ,          p\        V\        4      '       d   V\        VP                  R7      ,          pMV\        XXR7      ,          p\        \        P                  P                  V4      4      pV'       d   V\        R	R
7      ,          pVe   V\        VR7      ,          p\        P                  P                  V4      #   \         d    \        R4      hi ; i)zi
Return users that have permission "perm". By default, filter out
inactive users and include superusers.
r{   zDPermission name should be in the form app_label.permission_codename.z>The `perm` argument must be a string or a permission instance.pk)group__user)r^   r   )rz   ry   T)r   )re   )
isinstancestrsplit
ValueErrorr   	TypeErrorrS   rU   noner   r   r   r   rq   rr   )	r   rA   re   include_superusersr)   r   rz   permission_quser_qs	   &&&&&    r   	with_permModelBackend.with_perm   s+   
 dC  &*jjo#	8 D*--P  ?--2244Xd^4qhtn7MMdJ''AM)LAxSSL
**11,?@aT**F a),,F))00883   5 s   E E6c                     \         P                  P                  VR 7      pT P	                  T4      '       d   T# R#   \         P                   d     R# i ; ir   N)rS   rU   rR   rY   rX   r   r   r^   s   && r   r   ModelBackend.get_user   sW    	--11W1=D 11$77tATA %% 		s    = AAc                   "    \         P                  P                  VR 7      G Rj  xL
 pT P	                  T4      '       d   T# R#  L  \         P                   d     R# i ; i5ir   )rS   rU   agetrY   rX   r   s   && r   r!   ModelBackend.aget_user   s`     	"3388G8DDD 11$77tATA E%% 		s=   A%#A	 AA	 A%A%A	 	A"A%!A""A%r   )NNr   )TTN)rG   rH   rI   rJ   __doc__r   r   rX   rm   rt   r   r   r*   r.   r1   r4   r9   rB   rE   r   r   r   r   r!   rK   rL   __classcell__)r   rN   s   @@r   rP   rP   6   sw     "0/J2*2&<C=D$PW

!9FBB Br   rP   c                   &   a  ] tR t^t o R tRtV tR# )AllowAllUsersModelBackendc                    R # Tr   rg   s   &&r   rX   /AllowAllUsersModelBackend.user_can_authenticate   r   r   r   NrG   rH   rI   rJ   rX   rK   rL   rM   s   @r   r   r            r   r   c                   N   a  ] tR t^t o RtRtR tR tR tR
R lt	R
R lt
RtV tR	# )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                   V'       g   R# RpRpV P                  V4      pV P                  '       d4   \        P                  P                  ! R/ \        P
                  V/B w  rCM  \        P                  P                  V4      pV P                  WVR7      pV P                  V4      '       d   V# R#   \        P                   d     LEi ; i)a9  
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_userrS   rU   get_or_createrT   rV   rY   configure_userrX   r   r   remote_userr   r^   r\   s   &&&   r   r   RemoteUserBackend.authenticate	  s     &&{3
 ###%66DD ++X6MD' 11DDXN ""7'"B11$77tATA )) s   &B3 3C
Cc                  "   V'       g   R# RpRpV P                  V4      pV P                  '       d<   \        P                  P                  ! R/ \        P
                  V/B G Rj  xL
 w  rCM( \        P                  P                  V4      G Rj  xL
 pV P                  WVR7      G Rj  xL
 pV P                  V4      '       d   V# R#  Le L<  \        P                   d     LQi ; i L>5i)zSee authenticate().NFr   r   )
r   r   rS   rU   aget_or_createrT   ra   rY   aconfigure_userrX   r   s   &&&   r   r   RemoteUserBackend.aauthenticate'  s     &&{3
 ###"+"<"<"K"K #++X6# MD'&77KKHUU ))')II11$77tATA
 V)) Is^   1C.3C.'C(C.0"C CC C.-C,.C.	C.C C)&C.(C))C.c                    V# )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   r\   s   &&r   r    RemoteUserBackend.clean_username>  s	     r   c                    V# )zX
Configure a user and return the updated user.

By default, return the user unmodified.
r   r   r   r^   r   s   &&&&r   r    RemoteUserBackend.configure_userG  s	     r   c                V   "   \        V P                  4      ! WV4      G Rj  xL
 #  L5i)zSee configure_user()N)r   r   r   s   &&&&r   r   !RemoteUserBackend.aconfigure_userO  s#     "4#6#67wOOOOr   r   Nr   )rG   rH   rI   rJ   r   r   r   r   r   r   r   rK   rL   rM   s   @r   r   r      s4     	 B<B.P Pr   r   c                   &   a  ] tR tRt o R tRtV tR# )AllowAllUsersRemoteUserBackendiT  c                    R # r   r   rg   s   &&r   rX   4AllowAllUsersRemoteUserBackend.user_can_authenticateU  r   r   r   Nr   rM   s   @r   r   r   T  r   r   r   N)asgiref.syncr   django.contrib.authr   django.contrib.auth.modelsr   django.db.modelsr   r   r   rS   r
   rP   r   r   r   r   r   r   <module>r      sd    & . 1 0 0	)F )FX|B; |B~ 
WP WPt%6 r   