
    Gwg)#                        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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)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        P/var/www/horilla/myenv/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 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                 @    |s| j                   S t        | 	  ||      S r3   )add_fieldsetsr*   get_fieldsets)r,   r$   objr0   s      r1   rR   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$   rS   r.   defaultsr0   s        r1   rX   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                 L    |j                  d       xr t        | 	  ||      S )Nr@   )
startswithr*   lookup_allowed)r,   lookupvaluer0   s      r1   rb   zUserAdmin.lookup_allowedm   s/    $$Z00 
UW5KE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_views   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_textrW   r*   rl   )r,   r$   rj   rk   username_fieldrY   r0   s         r1   ri   zUserAdmin._add_viewy   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(  r| j                  ||j                        }|j                         r|j                          | j                  ||d       }| j                  |||       t!        d      }t#        j$                  ||       t'        ||j(                         t+        t-        | j.                  j0                  d|j2                  j4                  d|j2                  j6                  d|j8                  f            S | j                  |      }d d	t;        |j<                        ifg}t>        j@                  jC                  ||i       }	t        d
      t        |jE                               z  |	||tF        |j                  v xs tF        |jH                  v tF        ddddd| j                  |ddd| j.                  jK                  |      }
| j.                  j0                  |_&        tO        || jP                  xs 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	adminFormrj   rU   is_popupis_popup_varaddchangehas_delete_permissionrq   has_absolute_urlrt   originalsave_as	show_savez$admin/auth/user/change_password.html))
get_objectr   rq   r   r   r}   rt   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$   idrj   r   rU   change_messagemsg	fieldsets
admin_formcontexts              r1   r^   zUserAdmin.user_change_password   s8   w4))'48""<LM II22!":  >>V#,,T7<<@D}}		!%!>!>wd!S~>>?  #.($))<+ !OO00 JJ00 JJ11	 #ggZ
 
 ,,T2DXtD,<,<'=>?@	]],,T9bA
 ,-t7H7H7J0KK# %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$   rS   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   rQ   r
   rU   r   rV   r	   r   list_displaylist_filterr7   r8   r9   rR   rX   r_   rb   sensitive_post_parameters_mcsrf_protect_mrl   ri   r^   r   r:   r;   s   @r1   r=   r=   +   s   7$(!	234	
?	h(LMNm 	
 
	*GHII& $@	
M DH2OLEKDMH
3
:
 !D  !DB8 !@
 !@
D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=   rn   r2   r1   <module>r      s      * 5 . 8 
 3 3 ) 5 5 % 4 $ , 6 5 C!,/./H/JK  U!! U U zE   zE zEr2   