
    (ph4                         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Jr  SSKJr  SS	KJr  SS
KJr   " S S\5      rSr " S S\5      rg)z*
Management utility to create superusers.
    N)get_user_model)get_default_username)validate_password)
exceptions)BaseCommandCommandError)DEFAULT_DB_ALIAS)cached_property)capfirstc                       \ rS rSrSrg)NotRunningInTTYException    N)__name__
__module____qualname____firstlineno____static_attributes__r       j/var/www/html/venv/lib/python3.13/site-packages/django/contrib/auth/management/commands/createsuperuser.pyr   r      s    r   r   passwordc                   v   ^  \ rS rSrSrSrSrU 4S jrS rU 4S jr	S r
SS	 jrSS
 jr\S 5       rS rSrU =r$ )Command   zUsed to create a superuser.T)stdinc                    > [         TU ]  " U0 UD6  [        5       U l        U R                  R                  R                  U R                  R                  5      U l        g N)super__init__r   	UserModel_meta	get_fieldUSERNAME_FIELDusername_field)selfargskwargs	__class__s      r   r   Command.__init__   sI    $)&)')"nn22<<NN))
r   c                    UR                  SU R                  R                  -  SS9  UR                  SSSSSU R                  R                  -  S	9  UR                  S
[        SS9  U R                  R                   H  nU R                  R
                  R                  U5      nUR                  (       ar  UR                  R                  (       a=  UR                  R                  R
                  R                  (       d  [        SU-  5      eUR                  SU-  SSU-  4S9  M  UR                  SU-  SU-  S9  M     g )Nz--%sz&Specifies the login for the superuser.)helpz	--noinputz
--no-inputstore_falseinteractivezTells Django to NOT prompt the user for input of any kind. You must use --%s with --noinput, along with an option for any other required field. Superusers created with --noinput will not be able to log in until they're given a valid password.)actiondestr+   z
--databasez4Specifies the database to use. Default is "default".)defaultr+   z\Required field '%s' specifies a many-to-many relation through model, which is not supported.appendz?Specifies the %s for the superuser. Can be used multiple times.)r.   r+   z#Specifies the %s for the superuser.)add_argumentr    r#   r	   REQUIRED_FIELDSr!   r"   many_to_manyremote_fieldthroughauto_createdr   )r%   parser
field_namefields       r   add_argumentsCommand.add_arguments&   sY   T^^2229 	 	
 	 N ..//	0 	 	
 	$G 	 	

 ..88JNN((22:>E!!&&..!..66<<II&JLVW 
 ''+'.0:; (  ##Z'>K $ + 9r   c                 n   > UR                  S[        R                  5      U l        [        TU ]  " U0 UD6$ )Nr   )getsysr   r   execute)r%   r&   optionsr(   s      r   r@   Command.executeW   s-    [[#))4
w000r   c                    X R                   R                     nUS   n0 nU R                  R                  n U R                   R                  R                  [        5        S U[        '    US   (       Ga  0 n[        U R                  S5      (       a%  U R                  R                  5       (       d  [        e[        US9nU(       a7  U R                  X6U5      n	U	(       a  U R                  R!                  U	5        S nOUS:X  a  [#        S[%        U5      -  5      eUc|  U R'                  U R                  U5      n
U R)                  U R                  X5      nU(       a8  U R                  X6U5      n	U	(       a  U R                  R!                  U	5        S nMz  Uc  M|  X5U R                   R                  '   U R                  R*                  (       a%  U R                  R*                  R-                  U5      OUXpR                   R                  '   U R                   R.                   GHE  nU R                   R                  R                  U5      nX+   X['   X[   b  UR1                  X[   S 5      X['   X[   c  U R'                  U5      n
U R)                  X5      nXU'   UR2                  (       an  U(       ag  UR5                  5       (       d!  S X['   U R                  R!                  S5        My  UR7                  S5       Vs/ s H  oR5                  5       PM     snX['   X[   c  M  UR2                  (       d  X[   X{'   UR8                  (       d  GM&  UR*                  R-                  X[   5      X{'   GMH     [        U;   a  U[           c  [:        R:                  " 5       n[:        R:                  " S	5      nUU:w  a  U R                  R!                  S
5        Mb  UR5                  5       S:X  a  U R                  R!                  S5        M   [=        UU R                   " S0 UD65        X[        '   [        U;   a  U[           c  M  GO'[        U;   a.  S[H        RJ                  ;   a  [H        RJ                  S   U[        '   UcD  [H        RJ                  RM                  SU R                   R                  RO                  5       -   5      nUc"  [#        SU R                   R                  -  5      eU R                  X6U5      n	U	(       a  [#        U	5      eX5U R                   R                  '   U R                   R.                   GH,  nSURO                  5       -   nX+   =(       d    [H        RJ                  RM                  U5      nU R                   R                  R                  U5      nU(       dL  URP                  (       a-  X+   S:X  d#  [H        RJ                  RM                  U5      S:X  a  M  [#        SU-  5      eUR1                  US 5      X['   UR2                  (       d  M  [S        X[   [T        5      (       d  M  X[   R7                  S5       Vs/ s H  oR5                  5       PM     snX['   GM/     U R                   RV                  RY                  U5      RZ                  " S0 UD6  US   S:  a  U R\                  R!                  S5        g g ! [        R                   a     GNjf = fs  snf ! [        R>                   ae  nU R                  R!                  SRA                  URB                  5      5        [E        S5      nURG                  5       S:w  a   S nAGM   S nAGN6S nAff = fs  snf ! [^         a4    U R                  R!                  S5        [`        Rb                  " S5         g [        R>                   a)  n[#        SRA                  URB                  5      5      eS nAf[         a    U R\                  R!                  S5         g f = f)Ndatabaser-   isatty)rD    %s cannot be blank.z"Error: This field cannot be blank.,zPassword (again): z#Error: Your passwords didn't match.z&Error: Blank passwords aren't allowed.
z:Bypass password validation and create user anyway? [y/N]: yDJANGO_SUPERUSER_PASSWORDDJANGO_SUPERUSER_z!You must use --%s with --noinput.	verbosity   zSuperuser created successfully.z
Operation cancelled.; zSuperuser creation skipped due to not running in a TTY. You can run `manage.py createsuperuser` in your project to create one manually.r   )2r    r#   r$   verbose_namer!   r"   PASSWORD_FIELDr   FieldDoesNotExisthasattrr   rE   r   r   _validate_usernamestderrwriter   r   _get_input_messageget_input_datar5   modelr3   cleanr4   stripsplitmany_to_onegetpassr   ValidationErrorjoinmessagesinputlowerosenvironr>   upperblank
isinstancestr_default_manager
db_managercreate_superuserstdoutKeyboardInterruptr?   exit)r%   r&   rA   usernamerD   	user_dataverbose_field_namefake_user_datadefault_username	error_msgmessager9   r:   input_valuepkr   	password2errresponseenv_varvaluees                         r   handleCommand.handle[   s   >>889:&	!00==	-NN  **>:
 )-In%V	}%% "$4::x009J9J9L9L22#7#J  $ 7 7 h!I !)))4#'^&-9K0LL  &"55++-=G  $22++W H  $($;$;$(%	 % KK--i8'+H$ & <D$..778 **77 ''44::8D! ~~<<= #'.."@"@J NN00:::FE,3,?I) ,805I<QSW0X	-#/7"&"9"9%"@&*&9&9%&I0;*- --+#.#4#4#6#68<	 5 $ 1 12V W (5@5F5Fs5K55Kr
5K5I1 $/7 !--5>5J2(((5:5G5G5M5M%162- #A6 %	1i6O6W&0H '0D EI9,))*OP ~~'2-))*RS %))T^^5Un5UV 19n-) %	1i6O6W2 #i/3rzzA02

;V0WIn- #!zz~~+dnn.K.K.Q.Q.SS H #&;..778 
 !% 7 7 h!I !*955;C$..778"&.."@"@J1J4D4D4FFG#/J2::>>'3JE NN00:::FE  ;;#/259PTV9V$*?*L  -2KKt,DI))))j9NPS.T.T1:1F1L1LS1Q11Q2HHJ1Q1	- #A$ NN++66x@QQ  {#q(!!"CD )_ ++ 		z54 &55 %))$))CLL*AB#(X$ $>>+s2$ 3%b1 ! 	KK67HHQK)) 	6tyy455' 	KK*	s   )Z< *D.] E] 6[
] &] B7] >[ ] 8G] ] )] >]A#] <[[] ]0A]] ]] ;_<_<-$_(_<;_<c                    [        U5      nU(       a  US:X  a  Un UR                  US5      nU$ ! [        R                   aD  nU R                  R                  SSR                  UR                  5      -  5        Sn SnAU$ SnAff = f)zU
Override this method if you want to customize data inputs or
validation exceptions.
rF   Nz	Error: %srO   )rb   rZ   r   r_   rU   rV   r`   ra   )r%   r:   rv   r0   	raw_valuevalr~   s          r   rX   Command.get_input_data   s}    
 'N	yBI	++i.C
 
	 )) 	KKkDIIajj,AABC
		s   0 B9BBc                 J   [        UR                  5      < U(       a  SU-  OS< UR                  (       ah  SUR                  R                  R                  R
                  < SUR                  (       a  UR                  5       OUR                  R                  < S3OS< S3$ )Nz (leave blank to use '%s')rF   z (.)z: )	r   rP   r5   rY   r!   object_namer4   m2m_target_field_namer9   )r%   r:   r0   s      r   rW   Command._get_input_message  s    U''(6=(722E %%% &&,,22>> !-- 335"//::;	 
	
 	
r   c                    ^  T R                   R                  (       a  g[        U 4S jT R                  R                  R
                   5       5      $ )NTc              3      >#    U  HJ  n[        UR                  5      S :H  =(       a&    UR                  S   TR                  R                  :H  v   ML     g7f)rN   r   N)lenfieldsr$   name).0unique_constraintr%   s     r   	<genexpr>-Command.username_is_unique.<locals>.<genexpr>&  sX      
 &S! !(()Q. H!((+t/B/B/G/GGH%Rs   AA)r$   uniqueanyr    r!   total_unique_constraints)r%   s   `r   username_is_uniqueCommand.username_is_unique"  sA    %% 
 &*^^%9%9%R%R
 
 	
r   c                    U R                   (       a:   U R                  R                  R                  U5      R	                  U5        SU-  $ U(       d  S[        U5      -  $  U R                  R                  US5        g! U R                  R
                   a     NOf = f! [        R                   a%  nSR                  UR                  5      s SnA$ SnAff = f)z=Validate username. If invalid, return a string error message.z Error: That %s is already taken.rG   NrO   )r   r    rj   rk   get_by_natural_keyDoesNotExistr   r$   rZ   r   r_   r`   ra   )r%   rp   rr   rD   r~   s        r   rT   Command._validate_username,  s    ""O//::8DWW :<NNN(84F+GGG	)%%h5 >>..  )) 	)99QZZ((	)s/   4A? "B ?BBC3CCC)r    r   r$   r   )r   r   r   r   r+   requires_migrations_checksstealth_optionsr   r;   r@   r   rX   rW   r
   r   rT   r   __classcell__)r(   s   @r   r   r      sR    (D!% O
/b1bH 
& 
 
) )r   r   )__doc__r^   rd   r?   django.contrib.authr   django.contrib.auth.managementr   'django.contrib.auth.password_validationr   django.corer   django.core.management.baser   r   	django.dbr	   django.utils.functionalr
   django.utils.textr   	Exceptionr   rQ   r   r   r   r   <module>r      sN     	 
 . ? E " A & 3 &	y 	 b)k b)r   