
    Dvg5                         d Z ddlZddlZddl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mZ ddlmZmZ dd	lmZ dd
lmZ  G d de          ZdZ G d de          ZdS )z*
Management utility to create superusers.
    N)get_user_model)get_default_username)validate_password)
exceptions)BaseCommandCommandError)DEFAULT_DB_ALIASconnections)cached_property)capfirstc                       e Zd ZdS )NotRunningInTTYExceptionN)__name__
__module____qualname__     t/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/contrib/auth/management/commands/createsuperuser.pyr   r      s        Dr   r   passwordc                   l     e Zd ZdZdZdZ fdZd Z fdZd Z	dd	Z
dd
Zed             Zd Z xZS )CommandzUsed to create a superuser.T)stdinc                      t                      j        |i | t                      | _        | j        j                            | j        j                  | _        d S N)super__init__r   	UserModel_meta	get_fieldUSERNAME_FIELDusername_field)selfargskwargs	__class__s      r   r   zCommand.__init__   sW    $)&)))'))"n2<<N)
 
r   c                 H   |                     d| j        j        z  d           |                     ddddd| j        j        z  	           |                     d
t          t	          t
                    d           | j        j        D ]}| j        j                            |          }|j	        rT|j
        j        r(|j
        j        j        j        st          d|z            |                     d|z  dd|z  f           ||                     d|z  d|z             d S )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".)defaultchoicesr'   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	   tupler
   REQUIRED_FIELDSr   r   many_to_manyremote_fieldthroughauto_createdr   )r"   parser
field_namefields       r   add_argumentszCommand.add_arguments&   s   T^229 	 	
 	
 	
 	 N ./	0 	 	
 	
 	
 	$+&&G	 	 	
 	
 	
 .8 	 	JN(22:>>E! &.!.6<I 'JLVW  
 ''+'.0:; (     ##Z'>K $    +	 	r   c                     |                     dt          j                  | _         t                      j        |i |S )Nr   )getsysr   r   execute)r"   r#   optionsr%   s      r   r=   zCommand.executeX   s5    [[#)44
uww0000r   c                 n   || j         j                 }|d         }i }| j        j        }	 | j         j                            t                     d |t          <   n# t          j        $ r Y nw xY w	 |d         ri }t          | j
        d          r | j
                                        st          t          |          }|r6|                     |||          }	|	r| j                            |	           d }n%|dk    rt#          dt%          |          z            |q|                     | j        |          }
|                     | j        |
|          }|r6|                     |||          }	|	r| j                            |	           d }q|q||| j         j        <   | j        j        r| j        j                            |          n||| j         j        <   | j         j        D ]/}| j         j                            |          }||         ||<   ||         |                    ||         d           ||<   ||         |                     |          }
|                     ||
          }|||<   |j        rX|rV|                                s d ||<   | j                            d           ud |                    d	          D             ||<   ||         |j        s||         ||<   |j        r#|j                            ||                   ||<   1t          |v rB|t                   4t;          j                    }t;          j        d
          }||k    r| j                            d           `|                                dk    r| j                            d           	 t=          | | j         di |           n{# t          j        $ ri}| j                            d                     |j!                             tE          d          }|#                                dk    rY d }~Y d }~nd }~ww xY w||t          <   t          |v r|t                   4nt          |v r(dtH          j%        v rtH          j%        d         |t          <   |>tH          j%        &                    d| j         j        '                                z             }|t#          d| j         j        z            |                     |||          }	|	rt#          |	          ||| j         j        <   | j         j        D ]}d|'                                z   }||         ptH          j%        &                    |          }| j         j                            |          }|sI|j(        r0||         dk    s#tH          j%        &                    |          dk    rt#          d|z            |                    |d           ||<   |j        rCtS          ||         tT                    r(d ||                             d	          D             ||<    | j         j+        ,                    |          j-        di | |d         dk    r| j.                            d           d S d S # t^          $ r2 | j                            d           ta          j1        d           Y d S t          j        $ r,}t#          d                     |j!                            d }~wt          $ r | j.                            d           Y d S w xY w)Ndatabaser)   isatty)r@    %s cannot be blank.z"Error: This field cannot be blank.c                 6    g | ]}|                                 S r   strip.0pks     r   
<listcomp>z"Command.handle.<locals>.<listcomp>   s-     5 5 5/1

5 5 5r   ,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.c                 6    g | ]}|                                 S r   rE   rG   s     r   rJ   z"Command.handle.<locals>.<listcomp>   s-     1 1 1+-BHHJJ1 1 1r   	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   rA   r   r   _validate_usernamestderrwriter   r   _get_input_messageget_input_datar3   modelr1   cleanr2   rF   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#   r>   usernamer@   	user_dataverbose_field_namefake_user_datadefault_username	error_msgmessager7   r8   input_valuer   	password2errresponseenv_varvaluees                        r   handlezCommand.handle\   s=   4>89:&	!0=	-N **>:::
 )-In%%	 + 	 	 	D	
V	}% D "$4:x00 39J9J9L9L 322#7#J#J#J  
 $ 7 7 "4h! !I ! ()))444#'^^&-9K0L0LL   &"55+-= G  $22+W6F   H   %$($;$;$&8(% %	 % % K--i888'+H$ & <D	$.78 *7"D'4::8DDD! t~<= #'."@  J N0:::FFE,3J,?Ij) ,805Ij<QSW0X0X	*-#J/7"&"9"9%"@"@&*&9&9%&I&I0;	*- - + #.#4#4#6#6 )8<	* 5 $ 1 12V W W W (5 55@5F5Fs5K5K5 5 5Ij1 $J/7 !- K5>z5Jz2( 5:5G5M5M%j16 6z2
 %	11i6O6W&00H '0D E EI9,,))*OPPP ~~''2--))*RSSS %))^T^5U5Un5U5UVVVV%5 % % %))$))CL*A*ABBB#(X$ $ $>>++s22$HHHH 32222% 19In-) %	11i6O6W2 #i//3rzAA02
;V0WIn- #!z~~+dn.K.Q.Q.S.SS   H #&;.78  
 !% 7 7 "4h! !I ! 6*9555;C	$.78"&."@  J1J4D4D4F4FFG#J/J2:>>'3J3JE N0:::FFE   ; %#J/2559P9PTV9V9V$*?*L   -2KKt,D,DIj)) j:9NPS.T.T 1 11::1F1L1LS1Q1Q1 1 1	*- RDN+66x@@Q     {#q((!!"CDDDDD )(  	 	 	K6777HQKKKKKK) 	6 	6 	6tyy44555' 	 	 	K*     	sb   $A A+*A+/L9Z )O Z P=AP8-Z 8P==IZ 8\4\4"'\		'\43\4Nc                    t          |          }|r|dk    r|}	 |                    |d          }nS# t          j        $ rA}| j                            dd                    |j                  z             d}Y d}~nd}~ww xY w|S )zm
        Override this method if you want to customize data inputs or
        validation exceptions.
        rB   Nz	Error: %srS   )re   r^   r   rb   rY   rZ   rc   rd   )r"   r8   ry   r,   	raw_valuevalr   s          r   r\   zCommand.get_input_data   s    
 'NN	 	 yBI	++i..CC) 	 	 	KkDIIaj,A,AABBBCCCCCC	 
s   2 B7A==Bc                     t          |j                  |rd|z  nd|j        rBd|j        j        j        j        d|j        r|                                n|j        j        dnddS )Nz (leave blank to use '%s')rB   z (.)z: )	r   rT   r3   r]   r   object_namer2   m2m_target_field_namer7   )r"   r8   r,   s      r   r[   zCommand._get_input_message  s    U'(((6=E(7222E %
 
&,2>>> !-;33555"/:; ;	  
 
	
 	
r   c                 t      j         j        rdS t           fd j        j        j        D                       S )NTc              3   ~   K   | ]7}t          |j                  d k    o|j        d         j        j        k    V  8dS )rR   r   N)lenfieldsr!   name)rH   unique_constraintr"   s     r   	<genexpr>z-Command.username_is_unique.<locals>.<genexpr>'  sf       
 
 " !())Q. H!(+t/B/GG
 
 
 
 
 
r   )r!   uniqueanyr   r   total_unique_constraints)r"   s   `r   username_is_uniquezCommand.username_is_unique#  sX    % 	4 
 
 
 
 &*^%9%R
 
 
 
 
 	
r   c                 z   | j         rM	 | j        j                            |                              |           d|z  S # | j        j        $ r Y nw xY w|sdt          |          z  S 	 | j                            |d           dS # t          j
        $ r$}d                    |j                  cY d}~S d}~ww xY w)z=Validate username. If invalid, return a string error message.z Error: That %s is already taken.rC   NrS   )r   r   rm   rn   get_by_natural_keyDoesNotExistr   r!   r^   r   rb   rc   rd   )r"   rs   ru   r@   r   s        r   rX   zCommand._validate_username-  s    " 	OO/::8DDWW   :<NNN >.     	H(84F+G+GGG	)%%h55555) 	) 	) 	)99QZ((((((((	)s/   2A   AA*B B:B5/B:5B:r   )r   r   r   r'   requires_migrations_checksstealth_optionsr   r9   r=   r   r\   r[   r   r   rX   __classcell__)r%   s   @r   r   r      s        (D!% O
 
 
 
 
0 0 0d1 1 1 1 1b b bH    
 
 
 
& 
 
 _
) ) ) ) ) ) )r   r   )__doc__ra   rg   r<   django.contrib.authr   django.contrib.auth.managementr   'django.contrib.auth.password_validationr   django.corer   django.core.management.baser   r   	django.dbr	   r
   django.utils.functionalr   django.utils.textr   	Exceptionr   rU   r   r   r   r   <module>r      s7     				 



 . . . . . . ? ? ? ? ? ? E E E E E E " " " " " " A A A A A A A A 3 3 3 3 3 3 3 3 3 3 3 3 3 3 & & & & & &	 	 	 	 	y 	 	 	 c) c) c) c) c)k c) c) c) c) c)r   