
    j	$                         S r SSKrSSKrSSKrSSKJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJrJrJrJr  S	 rS
 rSS\\4S jrS rSS\\\R0                  4S jrS rS\4S jrg)zf
Creates permissions for all installed apps that need permissions, and renames
them on model renames.
    N)apps)get_permission_codename)create_contenttypes)
exceptions)color_style)DEFAULT_DB_ALIAS
migrationsroutertransactionc                 4    / [        U 5      QU R                  Q$ )z@
Return (codename, name) for all permissions in the given opts.
)_get_builtin_permissionspermissions)optss    _/var/www/html/KUNJ/venv/lib/python3.13/site-packages/django/contrib/auth/management/__init__.py_get_all_permissionsr      s!     @%d+?d.>.>??    c                     / nU R                    H1  nUR                  [        X 5      SU< SU R                  < 345        M3     U$ )zt
Return (codename, name) for all autogenerated permissions.
By default, this is ('add', 'change', 'delete', 'view')
Can  )default_permissionsappendr   verbose_name_raw)r   permsactions      r   r   r      sG    
 E**'5%t'<'<=	
 + Lr      Tc                    U R                   (       d  g  UR                  SS5      n[        R                  " X65      (       d  g [        U 4UUUUS.UD6  U R                  n UR                  U5      n UR                  SS5      n[        U R                  5       5      n	UR                  R                  U5      R                  " U	SS06n
[        UR                  R                  U5      R                  [        U
R!                  5       5      S9R#                  S	S
5      5      n/ nU	 Hx  nX   n[%        UR&                  5       HX  u  nnUR(                  U4U;  d  M  U" 5       nUUR*                  l        UUl        UUl        UUl        UR5                  U5        MZ     Mz     UR                  R                  U5      R7                  U5        US:  a  U H  n[9        SU-  5        M     g g ! [         a     g f = f! [         a     g f = f)Nauth
Permission)	verbosityinteractiveusingr   contenttypesContentTypefor_concrete_modelsF)content_type__incontent_typecodenamer   zAdding permission '%s')models_module	get_modelLookupErrorr
   allow_migrate_modelr   labelget_app_configlist
get_modelsobjects
db_managerget_for_modelssetr!   filtervaluesvalues_listr   _metapk_statedbr'   namer&   r   bulk_createprint)
app_configr   r    r!   r   kwargsr   	app_labelr#   modelsctypes	all_permsr   modelctyper'   r;   
permissionperms                      r   create_permissionsrH   )   s	    ##^^FL9
 %%e88
     I((3
nn^]C *'')*F   ++E2AA	%*F   '	 1 
 

 
^Z	0I E25;;?NHd(#94'\
',
!!$&.
#"&
*/
'Z( @  U#//6A~D*T12  o  *  s#   G(  #G8 (
G54G58
HHc                      U R                  X5      nUR                  R                  UR                  R                  4$ ! [         a-    U R                  SS5      nUR                  R                  U4s $ f = f)Nr   r   )r)   r*   r7   r   r   )r   r@   
model_namerD   r   s        r   _get_permission_metadatarK   r   sv    @y5 	''$$ 	  @^^FL9
33Z??@s   ? 4A65A6c                    U R                   (       d  g  UR                  SS5      n[        R                  " X75      (       d  g U=(       d    [        R
                  " U5      nU R                  n	U=(       d    /  V
VVs/ s H  u  pU
R                    Hw  n[        U[        R                  5      (       d  M$  U
R                  U R                  :X  d  M@  U(       a  UR                  UR                  4OUR                  UR                  4PMy     M     nnn
nU(       d  g / n/ nU H  u  nnSUR                  5        3nSUR                  5        3n[        XIU5      u  nnUR                   R#                  U5      R%                  U	U Vs/ s H	  nU U 3PM     snS9nU H`  nU HW  nUR&                  R)                  US-   5      (       d  M(  UR&                  nU U 3nSU SU 3nUR+                  UUUU45        MY     Mb     M     UR                   R#                  U5      R%                  U	U VVs/ s H
  u    nnnUPM     snnS9 Vs1 s H  nUR&                  iM     nnU H@  u  nn nnUU;   d  M  UR&                  U:w  d  M"  UR+                  UR,                  U U45        MB     U(       ac  U(       aC  [/        5       n!U H3  u  n"n nSU" SU  S	U S
3n#UR1                  U!R3                  U#5      5        M5     [5        U5       S3n$[7        U$5      e[8        R:                  " US9   U H(  u  nnnnUUl        UUl        UR?                  SS1US9  M*     S S S 5        U H+  u  nn%n&nUS:  d  M  UR1                  SU	 SU% SU& S35        M-     g ! [         a     g f = fs  snnn
f s  snf s  snnf s  snf ! , (       d  f       Ng= f)Nr   r   _)content_type__app_labelcodename__inr   r   zFailed to rename permission z from 'z' to 'z)'. Please resolve the conflict manually.
z( permission rename conflict(s) detected.)r!   r'   r;   )update_fieldsr!   r   zRenamed permission(s): .u    → 
) r(   r)   r*   r
   r+   db_for_writer,   
operations
isinstancer	   RenameModelr@   new_nameold_namelowerrK   r0   r!   r4   r'   
startswithr   r8   r   writeWARNINGlenRuntimeErrorr   atomicr;   save)'r>   r   planr!   r   stdoutr?   r   r:   r@   	migrationbackwardoprenamesplanned	conflictsrX   rW   
old_suffix
new_suffixactionsr   r   r   rG   old_codenamenew_codenamenew_name_strrM   newpexistingoldstyler8   msgerror_messagefrom_codenameto_codenames'                                          r   %rename_permissions_after_model_renamerx      s    ##
^^FL9
 %%e88		1&%%j1B  I
 %)JBJ$.I&&Bb*001 	O :#3#33	 	Ohbkk"R[["++4NN& 	O$.   GI%()*+
)*+
$<Th$W!!""((,33$-@GHfVHZL1H 4 

 D!}}//==#}}"(*6!%fXQ/?.@AlL,OP "  &. ##))"-44$-29:',!QQ#': 5 

A 	



   %c3(?t}}3dggsC01 %
 ME )C22$gcU& N> ?  U]]3/0 !* y>**RS=))			"	%3:/D!\<(DM$DIIIZ$8IC 4; 
& -4(=+q>LL)+Q}oU;-rC -4[  * I$ ;	4 
&	%sA   N <5N5N?NN$/N)N/$/N4
NN4
Oc                  h     [         R                  " 5       n U $ ! [        [        [        4 a     gf = f)zh
Return the current system user's username, or an empty string if the
username could not be determined.
 )getpassgetuserImportErrorKeyErrorOSError)results    r   get_system_usernamer      s7    
" M 7+  s    11c                    SSK Jn  UR                  R                  R                  (       a  g[        5       n [        R                  " SU5      R                  SS5      R                  S5      R                  SS5      R                  5       n UR                  R                  R                  S5      R                  U5        U (       a;  U(       a4   UR                  R"                  R%                  U5      R'                  US	9  gU$ ! [         a     gf = f! [        R                    a     gf = f! UR                  R(                   a     U$ f = f)
a  
Try to determine the current system user's username to use as a default.

:param check_db: If ``True``, requires that the username does not match an
    existing ``auth.User`` (otherwise returns an empty string).
:param database: The database where the unique check will be performed.
:returns: The username, or an empty string if no username can be
    determined or the suggested username is already taken.
r   )rA   rz   NFKDasciiignorer   username)r   )django.contrib.authrA   Userr7   swappedr   unicodedata	normalizeencodedecodereplacerY   UnicodeDecodeError	get_fieldrun_validatorsr   ValidationError_default_managerr1   getDoesNotExist)check_dbdatabaseauth_appdefault_usernames       r   get_default_usernamer      s*    7 }}""*,	!!&*:;VGX&VG_WS"UW 	%%j1@@AQR
 $	MM**55h?CC) D  '   %%  }})) 	 		s6   AD 4D 2D/ 
DDD,+D,/EE)__doc__r{   sysr   django.appsr   global_appsr   r   &django.contrib.contenttypes.managementr   django.corer   django.core.management.colorr   	django.dbr   r	   r
   r   r   r   rH   rK   rb   rx   r   r    r   r   <module>r      s}   
  
  + 7 F " 4 G G@$ 
	F3R
 	
	::cL" #'1A .r   