Ë
    ¹ûàg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y)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y)ÚNotRunningInTTYExceptionN)Ú__name__Ú
__module__Ú__qualname__© ó    úu/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/contrib/auth/management/commands/createsuperuser.pyr   r      s   „ Ør   r   Úpasswordc                   óf   ‡ — 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        ‰| �  |i |¤Ž t        «       | _        | j                  j                  j                  | j                  j                  «      | _        y ©N)ÚsuperÚ__init__r   Ú	UserModelÚ_metaÚ	get_fieldÚUSERNAME_FIELDÚusername_field)ÚselfÚargsÚkwargsÚ	__class__s      €r   r   zCommand.__init__   sI   ø€ Ü‰Ñ˜$Ð) &Ò)Ü'Ó)ˆŒØ"Ÿn™n×2Ñ2×<Ñ<Ø�N‰N×)Ñ)ó
ˆÕr   c                 óœ  — |j                  d| j                  j                  z  d¬«       |j                  ddddd| j                  j                  z  ¬	«       |j                  d
t        t	        t
        «      d¬«       | j                  j                  D ]¶  }| j                  j                  j                  |«      }|j                  rj|j                  j                  r8|j                  j                  j                  j                  st        d|z  «      ‚|j                  d|z  dd|z  f¬«       Œž|j                  d|z  d|z  ¬«       Œ¸ y )Nz--%sz&Specifies the login for the superuser.)Úhelpz	--noinputz
--no-inputÚstore_falseÚinteractivezòTells 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&   sf  € Ø×ÑØ�T—^‘^×2Ñ2Ñ2Ø9ð 	ô 	
ð 	×ÑØØØ ØðNð —.‘.×/Ñ/ñ	0ð 	ô 	
ð 	×ÑØÜ$Üœ+Ó&ØGð	 	ô 	
ð Ÿ.™.×8Ñ8ò 	ˆJØ—N‘N×(Ñ(×2Ñ2°:Ó>ˆEØ×!Ò!à×&Ñ&×.Ò.Ø!×.Ñ.×6Ñ6×<Ñ<×IÒIä&ðJØLVñWóð ð
 ×'Ñ'Ø Ñ+Ø'ð.Ø0:ñ;ðð (õ ð ×#Ñ#Ø˜ZÑ'Ø>ÀÑKð $õ ñ+	r   c                 ól   •— |j                  dt        j                  «      | _        t        ‰| �  |i |¤ŽS )Nr   )ÚgetÚsysr   r   Úexecute)r"   r#   Úoptionsr%   s      €r   r=   zCommand.executeX   s-   ø€ Ø—[‘[ ¬#¯)©)Ó4ˆŒ
Ü‰w‰ Ð0¨Ñ0Ð0r   c                 ó   — || j                   j                     }|d   }i }| j                  j                  }	 | j                   j                  j                  t        «       d |t        <   	 |d   �rˆi }t        | j                  d«      r | j                  j                  «       st        ‚t        |¬«      }|r3| j                  |||«      }	|	r:| j                  j!                  |	«       d }n|dk(  rt#        dt%        |«      z  «      ‚|€q| j'                  | j                  |«      }
| j)                  | j                  |
|«      }|r3| j                  |||«      }	|	r| j                  j!                  |	«       d }Œp|€Œq||| j                   j                  <   | j                  j*                  r%| j                  j*                  j-                  |«      n||| j                   j                  <   | j                   j.                  D �]2  }| j                   j                  j                  |«      }||   ||<   ||   �|j1                  ||   d «      ||<   ||   €�| j'                  |«      }
| j)                  ||
«      }|||<   |j2                  rc|ra|j5                  «       s!d ||<   | j                  j!                  d«       Œl|j7                  d«      D �cg c]  }|j5                  «       ‘Œ c}||<   ||   €Œ�|j2                  s||   ||<   |j8                  s�Œ|j*                  j-                  ||   «      ||<   �Œ5 t        |v �rÀ|t           �€¶t;        j:                  «       }t;        j:                  d	«      }||k7  r| j                  j!                  d
«       Œ]|j5                  «       dk(  r| j                  j!                  d«       ŒŒ	 t=        | | j                   di |¤Ž«       ||t        <   t        |v �r|t           €Œ²�nt        |v r,dtH        jJ                  v rtH        jJ                  d   |t        <   |€DtH        jJ                  jM                  d| j                   j                  jO                  «       z   «      }|€"t#        d| j                   j                  z  «      ‚| j                  |||«      }	|	rt#        |	«      ‚||| j                   j                  <   | j                   j.                  D �]  }d|jO                  «       z   }||   xs tH        jJ                  jM                  |«      }| j                   j                  j                  |«      }|sE|jP                  r+||   dk(  s"tH        jJ                  jM                  |«      dk(  rŒ›t#        d|z  «      ‚|j1                  |d «      ||<   |j2                  sŒËtS        ||   tT        «      sŒß||   j7                  d«      D �cg c]  }|j5                  «       ‘Œ c}||<   �Œ  | j                   jV                  jY                  |«      jZ                  di |¤Ž |d   dk\  r| j\                  j!                  d«       y y # t        j                  $ r Y �Œw xY wc c}w # t        j>                  $ rc}| j                  j!                  djA                  |jB                  «      «       tE        d«      }|jG                  «       dk7  rY d }~�Œ­Y d }~�Œ
d }~ww xY wc c}w # t^        $ r3 | j                  j!                  d«       ta        jb                  d«       Y y t        j>                  $ r)}t#        djA                  |jB                  «      «      ‚d }~wt        $ r | j\                  j!                  d«       Y y w xY w)NÚdatabaser)   Úisatty)r@   Ú ú%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.ú; z‡Superuser 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   Ú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#   r>   Úusernamer@   Ú	user_dataÚverbose_field_nameÚfake_user_dataÚdefault_usernameÚ	error_msgÚmessager7   r8   Úinput_valueÚpkr   Ú	password2ÚerrÚresponseÚenv_varÚvalueÚes                         r   ÚhandlezCommand.handle\   sþ  € Ø˜4Ÿ>™>×8Ñ8Ñ9ˆØ˜:Ñ&ˆØˆ	Ø!×0Ñ0×=Ñ=Ðð	-Ø�N‰N× Ñ ×*Ñ*¬>Ô:ð
 )-ˆI”nÑ%ðV	Ø�}Ó%ð "$�Ü˜4Ÿ:™: xÔ0¸¿¹×9JÑ9JÔ9LÜ2Ð2Ü#7ÀÔ#JÐ ÙØ $× 7Ñ 7Ø Ð"4°hó!�Iñ !ØŸ™×)Ñ)¨)Ô4Ø#'™Ø ’^Ü&Ø-´Ð9KÓ0LÑLóð ð Ð&Ø"×5Ñ5Ø×+Ñ+Ð-=ó�Gð  $×2Ñ2Ø×+Ñ+¨WÐ6Fó �Hñ  Ø$(×$;Ñ$;Ø$Ð&8¸(ó%˜	ñ %Ø ŸK™K×-Ñ-¨iÔ8Ø'+˜HØ$ð Ñ&ð <D�	˜$Ÿ.™.×7Ñ7Ñ8ð ×*Ñ*×7Ò7ð ×'Ñ'×4Ñ4×:Ñ:¸8ÔDà!ð ˜tŸ~™~×<Ñ<Ñ=ð #'§.¡.×"@Ñ"@ó �JØ ŸN™N×0Ñ0×:Ñ:¸:ÓF�EØ,3°JÑ,?�I˜jÑ)Ø  Ñ,Ð8Ø05·±¸IÀjÑ<QÐSWÓ0X˜	 *Ñ-Ø# JÑ/Ð7Ø"&×"9Ñ"9¸%Ó"@˜Ø&*×&9Ñ&9¸%ÀÓ&I˜Ø0;˜	 *Ñ-Ø ×-Ò-±+Ø#.×#4Ñ#4Ô#6Ø8< 	¨*Ñ 5Ø $§¡× 1Ñ 1Ð2VÔ WØ (à5@×5FÑ5FÀsÓ5Kö5Ø/1 §¡¥
ò5˜I jÑ1ð $ JÑ/Ñ7ð !×-Ò-Ø5>¸zÑ5J˜ zÑ2à×(Ô(Ø5:×5GÑ5G×5MÑ5MØ% jÑ1ó6˜ zÓ2ð-ô6 %¨	Ò1°iÄÑ6OÑ6WÜ&Ÿ™Ó0�HÜ '§¡Ð0DÓ E�IØ 9Ò,ØŸ™×)Ñ)Ð*OÔPà Ø—~‘~Ó'¨2Ò-ØŸ™×)Ñ)Ð*RÔSà ð%Ü)¨)°^°T·^±^Ñ5UÀnÑ5UÔVð 19�IœnÑ-ô) %¨	Ò1°iÄÑ6OÓ6Wô2 # iÑ/Ø3´r·z±zÑAä02·
±
Ð;VÑ0W�IœnÑ-ð Ð#Ü!Ÿz™zŸ~™~Ø+¨d¯n©n×.KÑ.K×.QÑ.QÓ.SÑSó �Hð Ð#Ü&Ø;ØŸ.™.×7Ñ7ñ8óð ð
 !%× 7Ñ 7Ø Ð"4°hó!�Iñ !Ü*¨9Ó5Ð5à;C�	˜$Ÿ.™.×7Ñ7Ñ8Ø"&§.¡.×"@Ñ"@ó �JØ1°J×4DÑ4DÓ4FÑF�GØ# JÑ/ÒJ´2·:±:·>±>À'Ó3J�EØ ŸN™N×0Ñ0×:Ñ:¸:ÓF�EÙ Ø Ÿ;š;Ø# JÑ/°2Ò5¼¿¹¿¹ÈÓ9PÐTVÒ9Và$Ü*Ø?À*ÑLóð ð -2¯K©K¸¸tÓ,D�I˜jÑ)Ø×)Ó)¬j¸À:Ñ9NÔPSÕ.Tà1:¸:Ñ1F×1LÑ1LÈSÓ1Qö1Ø+-˜BŸH™H�Jò1˜	 *Ó-ðð$ RˆD�N‰N×+Ñ+×6Ñ6°xÓ@×QÑQñ Øòð �{Ñ# qÒ(Ø—‘×!Ñ!Ð"CÕDð )øô_ ×+Ñ+ò 	Úð	üòz5øô4 &×5Ñ5ò %ØŸ™×)Ñ)¨$¯)©)°C·L±LÓ*AÔBÜ#(ØXó$˜ð $Ÿ>™>Ó+¨sÒ2Ý$õ 3ûð%üòb1øô !ò 	Ø�K‰K×ÑÐ6Ô7Ü�H‰H�QŽKÜ×)Ñ)ò 	6Ü˜tŸy™y¨¯©Ó4Ó5Ð5ûÜ'ò 	Ø�K‰K×Ñð*öð	ús§   ¸)Y Á+D[2 Å9E[2 Ë	Y/Ë [2 Ë, [2 ÌB0[2 Î?Y4 Ï[2 Ï7F9[2 Ö1[2 ×[2 ×[-×2A![2 ÙY,Ù+Y,Ù/[2 Ù4[*ÚA[%Û[2 Û%[*Û*[2 Û29^Ü-^Ü?$]#Ý#'^Þ^c                 ó  — t        |«      }|r|dk(  r|}	 |j                  |d«      }|S # t        j                  $ rD}| j                  j                  ddj                  |j                  «      z  «       d}Y d}~|S d}~ww xY w)zm
        Override this method if you want to customize data inputs or
        validation exceptions.
        rB   Nz	Error: %srK   )r^   rV   r   r[   rQ   rR   r\   r]   )r"   r8   rr   r,   Ú	raw_valueÚvalrz   s          r   rT   zCommand.get_input_data   s}   € ô
 ˜'“Nˆ	Ù�y B’ØˆIð	Ø—+‘+˜i¨Ó.ˆCð
 ˆ
øô	 ×)Ñ)ò 	Ø�K‰K×Ñ˜k¨D¯I©I°a·j±jÓ,AÑAÔBØŒCàˆ
ûð		ús   –* ªB½9A<Á<Bc                 ó(  — t        |j                  «      ›|rd|z  nd›|j                  rdd|j                  j                  j                  j
                  ›d|j                  r|j                  «       n|j                  j                  ›d�›d�S d›d�S )Nz (leave blank to use '%s')rB   z (ú.ú)z: )	r   rL   r3   rU   r   Úobject_namer2   Úm2m_target_field_namer7   )r"   r8   r,   s      r   rS   zCommand._get_input_message  s�   € ä�U×'Ñ'Ô(Ù6=Ð(¨7Ò2À2ÐEð ×%Ó%ð ×&Ñ&×,Ñ,×2Ñ2×>Ó>ð !×-Ò-ð ×3Ñ3Ô5à"×/Ñ/×:Ñ:ñ;ð	ñ 
ð	
ð 	
ð ñ
ð	
ð 	
r   c                 ó–   ‡ — ‰ j                   j                  ryt        ˆ fd„‰ j                  j                  j
                  D «       «      S )NTc              3   óž   •K  — | ]D  }t        |j                  «      d k(  xr& |j                  d   ‰j                  j                  k(  –— ŒF y­w)rJ   r   N)ÚlenÚfieldsr!   Úname)Ú.0Úunique_constraintr"   s     €r   ú	<genexpr>z-Command.username_is_unique.<locals>.<genexpr>'  sW   øè ø€ ò 
ð "ô Ð!×(Ñ(Ó)¨QÑ.ò HØ!×(Ñ(¨Ñ+¨t×/BÑ/B×/GÑ/GÑGóHñ
ùs   ƒA
A)r!   ÚuniqueÚanyr   r   Útotal_unique_constraints)r"   s   `r   Úusername_is_uniquezCommand.username_is_unique#  sA   ø€ à×Ñ×%Ò%ØÜó 
ð &*§^¡^×%9Ñ%9×%RÑ%Rô
ó 
ð 	
r   c                 óž  — | j                   r:	 | j                  j                  j                  |«      j	                  |«       d|z  S |sdt        |«      z  S 	 | j                  j                  |d«       y# | j                  j
                  $ r Y ŒIw xY w# t        j                  $ r%}dj                  |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   NrK   )r�   r   rf   rg   Úget_by_natural_keyÚDoesNotExistr   r!   rV   r   r[   r\   r]   )r"   rl   rn   r@   rz   s        r   rP   zCommand._validate_username-  s¼   € à×"Ò"ðOØ—‘×/Ñ/×:Ñ:¸8ÓD×WÑWØôð :Ð<NÑNÐNÙØ(¬8Ð4FÓ+GÑGÐGð	)Ø×Ñ×%Ñ% h°Õ5øð —>‘>×.Ñ.ò Ùðûô ×)Ñ)ò 	)Ø—9‘9˜QŸZ™ZÓ(Õ(ûð	)ús/   Ž4A5 ÁB Á5BÂBÂCÂ'CÃCÃCr   )r   r   r   r'   Úrequires_migrations_checksÚstealth_optionsr   r9   r=   r{   rT   rS   r   r�   rP   Ú__classcell__)r%   s   @r   r   r      sM   ø„ Ø(€DØ!%ÐØ €Oô
ò0ôd1òbóHó 
ð& ñ
ó ð
ö)r   r   )Ú__doc__rZ   r`   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   rM   r   r   r   r   ú<module>r       sN   ðñó Û 	Û 
å .Ý ?Ý EÝ "ß Aß 3Ý 3Ý &ô	˜yô 	ð €ôc)ˆkõ c)r   