
    `f#                        d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZ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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*  e e(          Z+ e  e*                      Z, ej-        e           G d dej.                              Z/ ej-        e           G d dej.                              Z0dS )    )settings)adminmessages)IS_POPUP_VAR)unquote)update_session_auth_hash)AdminPasswordChangeFormUserChangeFormUserCreationForm)GroupUser)PermissionDenied)routertransaction)Http404HttpResponseRedirect)TemplateResponse)pathreverse)method_decorator)escape)gettext)gettext_lazy)csrf_protect)sensitive_post_parametersc                   ,     e Zd ZdZdZdZd fd	Z xZS )
GroupAdminname)permissionsNc                     |j         dk    r=|                    d|j        j        j                  }|                    d          |d<    t                      j        |fd|i|S )Nr    querysetcontent_typerequest)r   getremote_fieldmodelobjectsselect_relatedsuperformfield_for_manytomany)selfdb_fieldr$   kwargsqs	__class__s        K/var/www/html/env/lib/python3.11/site-packages/django/contrib/auth/admin.pyr+   z#GroupAdmin.formfield_for_manytomany"   sj    =M))J(=(C(KLLB "$!2!2>!B!BF:/uww/TT'TVTTT    N)__name__
__module____qualname__search_fieldsorderingfilter_horizontalr+   __classcell__r0   s   @r1   r   r      sW        MH(U U U U U U U U U Ur2   r   c                   4    e Zd ZdZdZdddif ed          ddif ed          ddif ed	          dd
iffZddddffZeZ	e
ZeZdZdZdZdZdZd fd	Zd fd	Z fdZd fd	Zeedd                        Zd fd	Zedd            Zd fd	Z xZS )	UserAdminzadmin/auth/user/add_form.htmlNfields)usernamepasswordzPersonal info)
first_name	last_nameemailPermissions)	is_activeis_staffis_superusergroupsuser_permissionszImportant dates)
last_logindate_joined)wide)r?   	password1	password2)classesr>   )r?   rC   rA   rB   rF   )rF   rG   rE   rH   )r?   rA   rB   rC   )r?   )rH   rI   c                 Z    |s| j         S t                                          ||          S r3   )add_fieldsetsr*   get_fieldsets)r,   r$   objr0   s      r1   rR   zUserAdmin.get_fieldsetsU   s.     	&%%ww$$Wc222r2   c                     i }|
| j         |d<   |                    |            t                      j        ||fi |S )z7
        Use special form during user creation
        Nform)add_formupdater*   get_form)r,   r$   rS   r.   defaultsr0   s        r1   rX   zUserAdmin.get_formZ   sN     ;#}HVuww99999r2   c                     t          d| j                            | j                  d          gt	                                                      z   S )Nz<id>/password/auth_user_password_changer   )r   
admin_site
admin_viewuser_change_passwordr*   get_urls)r,   r0   s    r1   r_   zUserAdmin.get_urlsd   sU     **4+DEE0  
 GG 	r2   c                 v    |                     d           o"t                                          |||          S )Nr@   )
startswithr*   lookup_allowed)r,   lookupvaluer$   r0   s       r1   rb   zUserAdmin.lookup_allowedo   s>    $$Z000 
UWW5K5KE76
 6
 	
r2    c                     t          j        t          j        | j                            5  |                     |||          cd d d            S # 1 swxY w Y   d S )N)using)r   atomicr   db_for_writer'   	_add_view)r,   r$   form_urlextra_contexts       r1   add_viewzUserAdmin.add_viewu   s     f&9$*&E&EFFF 	D 	D>>'8]CC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   AAAc                 p   |                      |          s7|                     |          rt          j        rt	          d          t
          |i }| j                            | j        j	                  }d|j
        d}|                    |           t                                          |||          S )NzYour user does not have the "Change user" permission. In order to add users, Django requires that your user account have both the "Add user" and "Change user" permissions set. )auto_populated_fieldsusername_help_text)has_change_permissionhas_add_permissionr   DEBUGr   r   opts	get_fieldr'   USERNAME_FIELD	help_textrW   r*   rm   )r,   r$   rk   rl   username_fieldrY   r0   s         r1   rj   zUserAdmin._add_view{   s     ))'22 
	#&&w// HN  '   #" M,,TZ-FGG%'"0":
 
 	X&&&ww=AAAr2   c                    |                      |t          |                    }|                     ||          st          |9t	          t          d          | j        j        t          |          dz            |j	        dk    r| 
                    ||j                  }|                                r|                                 |                     ||d           }|                     |||           t!          d          }t#          j        ||           t'          ||j                   t+          t-          | j        j        d|j        j        d|j        j        d|j        f                    S n| 
                    |          }d d	t;          |j                  ifg}t>          j         !                    ||i           }	t          d
          t          |"                                          z  |	||tF          |j        v ptF          |j$        v tF          ddddd| j        |ddd| j        %                    |          }
| j        j        |_&        tO          || j(        pd|
          S )Nz8%(name)s object with primary key %(key)r does not exist.)r   keyPOSTzPassword changed successfully.:__change)argsr>   zChange password: %sTF)title	adminFormrk   rU   is_popupis_popup_varaddchangehas_delete_permissionrr   has_absolute_urlru   originalsave_as	show_savez$admin/auth/user/change_password.html))
get_objectr   rr   r   r   r~   ru   verbose_namer   methodchange_password_formr|   is_validsaveconstruct_change_message
log_changer   r   successr   userr   r   r\   r   _meta	app_label
model_namepklistbase_fieldsr   helpers	AdminFormget_usernamer   GETeach_contextcurrent_appr   change_user_password_template)r,   r$   idrk   r   rU   change_messagemsg	fieldsets
admin_formcontexts              r1   r^   zUserAdmin.user_change_password   s   w44))'488 	#""<LMM I2!"::    >V##,,T7<@@D}} 		!%!>!>wd!S!S~>>>>?? #...($)<<<+ !O000 J000 J111	 #gZ  
 
 
& ,,T22DXtD,<'='=>?@	],,T9bAA
 ,--t7H7H7J7J0K0KK# %5T9T(%*%) %I
 
  o**733!
& #o2. 65	
 
 	
r2   c                     d|j         vr6t          |j         vr(|j                                         |_         d|j         d<   t                                          |||          S )z
        Determine the HttpResponse for the add_view stage. It mostly defers to
        its superclass implementation but is customized because the User model
        has a slightly different workflow.
        _addanother   	_continue)r|   r   copyr*   response_add)r,   r$   rS   post_url_continuer0   s       r1   r   zUserAdmin.response_add   s\     ,,W\1Q1Q"<,,..GL()GL%ww##GS2CDDDr2   r3   )re   N)re   )r4   r5   r6   add_form_templater   r~   r   rQ   r
   rU   r   rV   r	   r   list_displaylist_filterr7   r8   r9   rR   rX   r_   rb   sensitive_post_parameters_mcsrf_protect_mrm   rj   r^   r   r:   r;   s   @r1   r=   r=   +   s       7$(!	234	
?		h(LMNAm 	
 
		*GHII& $@ 	
M DH2OLEKDMH
3 3 3 3 3 3
: : : : : :    
 
 
 
 
 
 !D D D ^ ! DB B B B B B8 !@
 @
 @
 ! @
DE E E E E E E E E Er2   r=   N)1django.confr   django.contribr   r   django.contrib.admin.optionsr   django.contrib.admin.utilsr   django.contrib.authr   django.contrib.auth.formsr	   r
   r   django.contrib.auth.modelsr   r   django.core.exceptionsr   	django.dbr   r   django.httpr   r   django.template.responser   django.urlsr   r   django.utils.decoratorsr   django.utils.htmlr   django.utils.translationr   r   r~   django.views.decorators.csrfr   django.views.decorators.debugr   r   r   register
ModelAdminr   r=   ro   r2   r1   <module>r      sf               * * * * * * * * 5 5 5 5 5 5 . . . . . . 8 8 8 8 8 8         
 3 2 2 2 2 2 2 2 3 3 3 3 3 3 ) ) ) ) ) ) ) ) 5 5 5 5 5 5 5 5 5 5 5 5 5 5 % % % % % % % % 4 4 4 4 4 4 $ $ $ $ $ $ , , , , , , 6 6 6 6 6 6 5 5 5 5 5 5 C C C C C C!!,//../H/H/J/JKK  U U U U U! U U U |E |E |E |E |E  |E |E |E |E |Er2   