
    k"g(                        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jZ                  e       G d dej\                               Z/ ejZ                  e       G d dej\                               Z0y)    )settings)adminmessages)IS_POPUP_VAR)unquote)update_session_auth_hash)AdminPasswordChangeFormAdminUserCreationFormUserChangeForm)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)permissionsc                     |j                   dk(  rD|j                  d|j                  j                  j                        }|j                  d      |d<   t        |   |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        R/var/www/html/djangosite/lib/python3.12/site-packages/django/contrib/auth/admin.pyr+   z#GroupAdmin.formfield_for_manytomany"   sb    ==M)J(=(=(C(C(K(KLB "$!2!2>!BF:w/T'TVTT    N)__name__
__module____qualname__search_fieldsorderingfilter_horizontalr+   __classcell__r0   s   @r1   r   r      s    MH(U Ur2   r   c                       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?   usable_password	password1	password2)classesr>   )r?   rC   rA   rB   rF   )rF   rG   rE   rH   )r?   rA   rB   rC   )r?   )rH   rI   c                 @    |s| j                   S t        | 	  ||      S r3   )add_fieldsetsr*   get_fieldsets)r,   r$   objr0   s      r1   rS   zUserAdmin.get_fieldsetsU   s$    %%%w$Wc22r2   c                 n    i }|| j                   |d<   |j                  |       t        |   ||fi |S )z7
        Use special form during user creation
        form)add_formupdater*   get_form)r,   r$   rT   r.   defaultsr0   s        r1   rY   zUserAdmin.get_formZ   s@     ;#}}HVw999r2   c                     t        d| j                  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   sE     **4+D+DE0
 G 	r2   c                 N    |j                  d       xr t        | 	  |||      S )Nr@   )
startswithr*   lookup_allowed)r,   lookupvaluer$   r0   s       r1   rc   zUserAdmin.lookup_allowedo   s1    $$Z00 
UW5KE76
 	
r2   c                     t        j                  t        j                  | j                              5  | j                  |||      cd d d        S # 1 sw Y   y xY w)N)using)r   atomicr   db_for_writer'   	_add_view)r,   r$   form_urlextra_contexts       r1   add_viewzUserAdmin.add_viewu   sJ     f&9&9$**&EF 	D>>'8]C	D 	D 	Ds   AAc                 R   | j                  |      s2| j                  |      rt        j                  rt	        d      t
        |i }| j                  j                  | j                  j                        }d|j                  d}|j                  |       t        | 5  |||      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_textrX   r*   rm   )r,   r$   rk   rl   username_fieldrZ   r0   s         r1   rj   zUserAdmin._add_view{   s     ))'2&&w/HNN '  #" M,,TZZ-F-FG%'"0":":
 	X&w=AAr2   c                 ,   | j                  |t        |            }| j                  ||      st        |7t	        t        d      | j                  j                  t        |      dz        |j                  dk(  rw| j                  ||j                        }|j                         r[|j                  d   xs d|j                  v }|s:t        d      }t        j                   ||       t#        |j%                               S |j'                         }| j)                  ||d       }| j+                  |||       |j-                         rt        d      }nt        d      }t        j.                  ||       t1        ||j2                         t#        t5        | j6                  j8                  d	|j:                  j<                  d
|j:                  j>                  d|j@                  f            S | j                  |      }d dtC        |jD                        ifg}	tF        jH                  jK                  ||	i       }
|j-                         rt        d      }nt        d      }|t        |jM                               z  |
||tN        |j                  v xs tN        |jP                  v tN        ddddd| j                  |ddd| j6                  jS                  |      }| j6                  j8                  |_*        tW        || jX                  xs d|      S )Nz8%(name)s object with primary key %(key)r does not exist.)r   keyPOSTset_usable_passwordzunset-passwordz2Conflicting form data submitted. Please try again.zPassword changed successfully.z+Password-based authentication was disabled.:__change)argsr>   zChange password: %szSet password: %sTF)title	adminFormrk   rV   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cleaned_datar   r   errorr   get_full_pathsaveconstruct_change_message
log_changehas_usable_passwordsuccessr   userr   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   rV   valid_submissionmsgchange_message	fieldsets
admin_formr   contexts                r1   r_   zUserAdmin.user_change_password   s   w4))'48""<LM II22!":  >>V#,,T7<<@D}} %%&;< 8'7<<7 ! (!"VWCNN7C0/0E0E0GHHyy{!%!>!>wd!S~>++-!"BCC!"OPC  #.($))<+ !OO00 JJ00 JJ11	 #ggZ
 
 ,,T2DXtD,<,<'=>?@	]],,T9bA
##%+,E()EVD$5$5$788# %5T9T(%*%) %II
  oo**73!
& #oo22.. 65	
 	
r2   c                     d|j                   vr@t        |j                   vr.|j                   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$   rT   post_url_continuer0   s       r1   r   zUserAdmin.response_add   sS     ,W\\1Q"<<,,.GL()GLL%w#GS2CDDr2   r3   ) N)r   )r4   r5   r6   add_form_templater   r   r   rR   r   rV   r
   rW   r	   r   list_displaylist_filterr7   r8   r9   rS   rY   r`   rc   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m 	
 
	*GHII& $S	
M D$H2OLEKDMH
3
:
 !D  !DB8 !U
 !U
n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      s      * 5 . 8 
 3 3 ) 5 5 % 4 $ , 6 5 C!,/./H/JK  U!! U U QE   QE QEr2   