§
    Ÿjw&  ã                   óv   — 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 ddlmZ d	„ Zdd„Zdd„Zd„ Zd
S )é    )Úchain)Ú
MethodType)Úapps)Úsettings)Úchecks)Úimport_stringé   )Ú_get_builtin_permissionsc                 óÄ   — t          | ¦  «        }t          |¦  «        D ]@\  }}	 t          |¦  «        }t          ||¦  «        r|c S Œ*# t          t          f$ r Y Œ=w xY wdS )z�
    Return the index of dotted class path (or a subclass of that class) in a
    list of candidate paths. If it does not exist, return -1.
    éÿÿÿÿ)r   Ú	enumerateÚ
issubclassÚImportErrorÚ	TypeError)Ú
class_pathÚcandidate_pathsÚclsÚindexÚpathÚcandidate_clss         úg/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/django/contrib/auth/checks.pyÚ_subclass_indexr      sˆ   € õ
 ˜
Ñ
#Ô
#€CÝ  Ñ1Ô1ð ð ‰ˆˆtð	Ý)¨$Ñ/Ô/ˆMÝ˜-¨Ñ-Ô-ð Ø���ðøå�YÐ'ð 	ð 	ð 	ØˆHð	øøøàˆ2s   ¥ A	Á	AÁANc           
      ó  ‡— | €t          j        t          j        ¦  «        ŠnKt          j                             d¦  «        \  }}| D ]$}|j        |k    r|                     |¦  «        Š nŒ%g S g }t          ‰j        t          t          f¦  «        s*| 
                    t          j        d‰d¬¦  «        ¦  «         ‰j        ‰j        v r<| 
                    t          j        dd‰j        ›d‰j        ›d�‰d	¬
¦  «        ¦  «         ‰j                             ‰j        ¦  «        j        s¸t#          ˆfd„‰j        j        D ¦   «         ¦  «        s“t          j        dgk    rA| 
                    t          j        d‰j        j        ›d‰j        ›d�‰d¬¦  «        ¦  «         nA| 
                    t          j        d‰j        j        ›d‰j        ›d�d‰d¬
¦  «        ¦  «         t           ‰¦   «         j        t.          ¦  «        r-| 
                    t          j        d‰z  ‰d¬¦  «        ¦  «         t           ‰¦   «         j        t.          ¦  «        r-| 
                    t          j        d‰z  ‰d¬¦  «        ¦  «         |S )Nú.z*'REQUIRED_FIELDS' must be a list or tuple.z	auth.E001©ÚobjÚidzjThe field named as the 'USERNAME_FIELD' for a custom user model must not be included in 'REQUIRED_FIELDS'.z*The 'USERNAME_FIELD' is currently set to 'z', you should remove 'z' from the 'REQUIRED_FIELDS'.z	auth.E002)Úhintr   r   c              3   ó:   •K  — | ]}|j         ‰j        fk    V — Œd S ©N)ÚfieldsÚUSERNAME_FIELD)Ú.0Ú
constraintr   s     €r   ú	<genexpr>z#check_user_model.<locals>.<genexpr>H   sM   øè è € ð Fð Fàð 	Ô˜cÔ0Ð2Ò2ðFð Fð Fð Fð Fð Fó    z)django.contrib.auth.backends.ModelBackendú'z=' must be unique because it is named as the 'USERNAME_FIELD'.z	auth.E003z9' is named as the 'USERNAME_FIELD', but it is not unique.zKEnsure that your authentication backend(s) can handle non-unique usernames.z	auth.W004z�%s.is_anonymous must be an attribute or property rather than a method. Ignoring this is a security issue as anonymous users will be treated as authenticated!z	auth.C009z¡%s.is_authenticated must be an attribute or property rather than a method. Ignoring this is a security issue as anonymous users will be treated as authenticated!z	auth.C010)r   Ú	get_modelr   ÚAUTH_USER_MODELÚsplitÚlabelÚ
isinstanceÚREQUIRED_FIELDSÚlistÚtupleÚappendr   ÚErrorr"   Ú_metaÚ	get_fieldÚuniqueÚanyÚtotal_unique_constraintsÚAUTHENTICATION_BACKENDSÚobject_nameÚWarningÚis_anonymousr   ÚCriticalÚis_authenticated)Úapp_configsÚkwargsÚ	app_labelÚ
model_nameÚ
app_configÚerrorsr   s         @r   Úcheck_user_modelrC      s-  ø€ ØÐÝŒn�XÔ5Ñ6Ô6ˆˆå (Ô 8× >Ò >¸sÑ CÔ CÑˆ	�:Ø%ð 	ð 	ˆJØÔ 9Ò,Ð,Ø ×*Ò*¨:Ñ6Ô6�Ø�ð -ð ˆIà€Fõ �cÔ)­Dµ%¨=Ñ9Ô9ð 
Ø�ŠÝŒLØ<ØØðñ ô ñ	
ô 	
ð 	
ð Ô˜SÔ0Ð0Ð0Ø�ŠÝŒLðUð Uð
 Ô)Ð)Ð)¨3Ô+=Ð+=Ð+=ð?ð Øð
ñ 
ô 
ñ	
ô 	
ð 	
ð Œ9×Ò˜sÔ1Ñ2Ô2Ô9ð Å#ð Fð Fð Fð Fàœ)Ô<ðFñ Fô Fñ Cô Cð õ Ô+Ø7ð0
ò 
ð 
ð �MŠMÝ”�à+.¬9Ô+@Ð+@Ð+@À#ÔBTÐBTÐBTðVàØ"ð	ñ ô ñô ð ð ð �MŠMÝ”�à”yÔ,Ð,Ð,¨cÔ.@Ð.@Ð.@ðBð0ð Ø"ð	ñ 	ô 	ñô ð õ �#�#‘%”%Ô$¥jÑ1Ô1ð 	
Ø�ŠÝŒOð:à<?ñ@ð Øðñ ô ñ	
ô 	
ð 	
õ �#�#‘%”%Ô(­*Ñ5Ô5ð 	
Ø�ŠÝŒOð:à<?ñ@ð Øðñ ô ñ	
ô 	
ð 	
ð €Mr&   c                 óê  — | €t          j        ¦   «         }nt          j        d„ | D ¦   «         ¦  «        }t          j        dd¦  «        }|j                             d¦  «        j        }|j                             d¦  «        j        }g }|D �]e}|j        }t          t          |¦  «        ¦  «        }	|	r+t          d„ |	                     ¦   «         D ¦   «         ¦  «        nd}
|
|k    rO||
t          |j        ¦  «        z
  z
  }|                     t          j        d|j        ||fz  |d	¬
¦  «        ¦  «         |	r+t          d„ |	                     ¦   «         D ¦   «         ¦  «        nd}||k    rO||t          |j        ¦  «        z
  z
  }|                     t          j        d|j        ||fz  |d¬
¦  «        ¦  «         t)          ¦   «         }|j        D �] \  }}t          |¦  «        |k    r5|                     t          j        d||j        |fz  |d¬
¦  «        ¦  «         t          |¦  «        |k    r5|                     t          j        d||j        |fz  |d¬
¦  «        ¦  «         ||	v r7|                     t          j        d|›d|j        ›d�|d¬
¦  «        ¦  «         n:||v r6|                     t          j        d|›d|j        ›d�|d¬
¦  «        ¦  «         |                     |¦  «         �Œ"�Œg|S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r    )Ú
get_models)r#   rA   s     r   r%   z+check_models_permissions.<locals>.<genexpr>€   s?   è è € ð %
ð %
Ø(2ˆJ×!Ò!Ñ#Ô#ð%
ð %
ð %
ð %
ð %
ð %
r&   ÚauthÚ
PermissionÚnameÚcodenamec              3   ó4   K  — | ]}t          |¦  «        V — Œd S r    ©Úlen)r#   rI   s     r   r%   z+check_models_permissions.<locals>.<genexpr>Ž   s(   è è € ÐCÐC˜d•�D‘	”	ÐCÐCÐCÐCÐCÐCr&   r   zzThe verbose_name of model '%s' must be at most %d characters for its builtin permission names to be at most %d characters.z	auth.E007r   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r    rL   )r#   rJ   s     r   r%   z+check_models_permissions.<locals>.<genexpr>¢   s(   è è € ÐIÐI (•�H‘”ÐIÐIÐIÐIÐIÐIr&   zvThe name of model '%s' must be at most %d characters for its builtin permission codenames to be at most %d characters.z	auth.E011zEThe permission named '%s' of model '%s' is longer than %d characters.z	auth.E008zIThe permission codenamed '%s' of model '%s' is longer than %d characters.z	auth.E012zThe permission codenamed 'z/' clashes with a builtin permission for model 'z'.z	auth.E005z' is duplicated for model 'z	auth.E006)r   rF   r   Úfrom_iterabler(   r2   r3   Ú
max_lengthÚdictr
   ÚmaxÚvaluesrM   Úverbose_name_rawr0   r   r1   r+   Úkeysr@   ÚsetÚpermissionsÚadd)r=   r>   ÚmodelsrH   Úpermission_name_max_lengthÚpermission_codename_max_lengthrB   ÚmodelÚoptsÚbuiltin_permissionsÚ"max_builtin_permission_name_lengthÚverbose_name_max_lengthÚ&max_builtin_permission_codename_lengthÚmodel_name_max_lengthÚ	codenamesrJ   rI   s                    r   Úcheck_models_permissionsrd   |   sá  € ØÐÝ”Ñ"Ô"ˆˆåÔ$ð %
ð %
Ø6Að%
ñ %
ô %
ñ 
ô 
ˆõ ” ¨Ñ5Ô5€JØ!+Ô!1×!;Ò!;¸FÑ!CÔ!CÔ!NÐØ%/Ô%5×%?Ò%?À
Ñ%KÔ%KÔ%VÐ"Ø€Fàð b$ñ b$ˆØŒ{ˆÝ"Õ#;¸DÑ#AÔ#AÑBÔBÐð #ð�CÐCÐCÐ&9×&@Ò&@Ñ&BÔ&BÐCÑCÔCÑCÔCÐCàð 	+ð
 .Ð0JÒJÐJØ&@Ø2µS¸Ô9NÑ5OÔ5OÑOñ'Ð#ð �MŠMÝ”ð*ð ”zÐ#:Ð<VÐWñXð Ø"ðñ ô ñ	ô 	ð 	ð #ð�CÐIÐIÐ.A×.FÒ.FÑ.HÔ.HÐIÑIÔIÑIÔIÐIàð 	/ð
 2Ð4RÒRÐRØ$BØ6½¸T¼_Ñ9MÔ9MÑMñ%Ð!ð �MŠMÝ”ð"ð œ
Ø-Ø6ðñð Ø"ðñ ô ñô ð õ ‘E”Eˆ	Ø"Ô.ð 2	$ñ 2	$‰NˆH�då�4‰yŒyÐ5Ò5Ð5Ø—’Ý”Lð.ð !Ø œJØ6ðñð "Ø&ð
ñ 
ô 
ñô ð õ �8‰}Œ}Ð=Ò=Ð=Ø—’Ý”Lð5ð %Ø œJØ:ðñð "Ø&ð
ñ 
ô 
ñô ð ð Ð.Ð.Ð.Ø—’Ý”L�Là8@¸¸À$Ä*À*À*ðNà!Ø&ð	ñ ô ñô ð ð ð ˜YÐ&Ð&Ø—’Ý”L�Là)1¨¨°4´:°:°:ð?à!Ø&ð	ñ ô ñô ð ð �MŠM˜(Ñ#Ô#Ð#Ñ#ñe2	$ðh €Mr&   c                 óè   — g }t          dt          j        ¦  «        }|dk    rOt          dt          j        ¦  «        }|dk    s||k    r)|                     t	          j        dd¬¦  «        ¦  «         |S )Nz6django.contrib.auth.middleware.LoginRequiredMiddlewarer   z7django.contrib.auth.middleware.AuthenticationMiddlewarez¨In order to use django.contrib.auth.middleware.LoginRequiredMiddleware, django.contrib.auth.middleware.AuthenticationMiddleware must be defined before it in MIDDLEWARE.z	auth.E013)r   )r   r   Ú
MIDDLEWAREr0   r   r1   )r=   r>   rB   Úlogin_required_indexÚ
auth_indexs        r   Úcheck_middlewareri   ð   s™   € Ø€Få*Ø@ÝÔñô Ðð
 ˜rÒ!Ð!Ý$ØEÝÔñ
ô 
ˆ
ð ˜ÒÐ˜zÐ,@Ò@Ð@Ø�MŠMÝ”ðXð #ð	ñ ô ñô ð ð €Mr&   r    )Ú	itertoolsr   Útypesr   Údjango.appsr   Údjango.confr   Údjango.corer   Údjango.utils.module_loadingr   Ú
managementr
   r   rC   rd   ri   © r&   r   ú<module>rr      sÝ   ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ]ð ]ð ]ð ]ð@qð qð qð qðhð ð ð ð r&   