o
    Mf!                     @   s:  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$m%Z& d dl'm(Z( d dl)m*Z* e e(Z+e e* Z,e-eG dd dej.Z/e-eG d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                       s*   e Zd ZdZdZdZd fdd	Z  ZS )
GroupAdminname)permissionsNc                    sB   |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__ [/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/django/contrib/auth/admin.pyr(      s   
z#GroupAdmin.formfield_for_manytomanyN)__name__
__module____qualname__search_fieldsorderingfilter_horizontalr(   __classcell__r/   r/   r-   r0   r      s
    r   c                       s   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d	Zd$ fdd	Z fddZ fddZeed%ddZd% fdd	Zed&d d!Zd$ fd"d#	Z  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;   r?   r=   r>   rB   )rB   rC   rA   rD   )r;   r=   r>   r?   )r;   )rD   rE   c                    s   |s| j S t ||S r1   )add_fieldsetsr'   get_fieldsets)r)   r!   objr-   r/   r0   rM   C   s   zUserAdmin.get_fieldsetsc                    s6   i }|du r| j |d< || t j||fi |S )z7
        Use special form during user creation
        Nform)add_formupdater'   get_form)r)   r!   rN   r+   defaultsr-   r/   r0   rR   H   s
   

zUserAdmin.get_formc                    s$   t d| j| jddgt   S )Nz<id>/password/auth_user_password_changer   )r   
admin_site
admin_viewuser_change_passwordr'   get_urls)r)   r-   r/   r0   rX   R   s   zUserAdmin.get_urlsc                    s   | d ot ||S )Nr<   )
startswithr'   lookup_allowed)r)   lookupvaluer-   r/   r0   rZ   [   s   zUserAdmin.lookup_allowed c                 C   sF   t jt| jd | |||W  d    S 1 sw   Y  d S )N)using)r   atomicr   db_for_writer$   	_add_view)r)   r!   form_urlextra_contextr/   r/   r0   add_view_   s   $zUserAdmin.add_viewc                    sj   |  |s| |rtjrtdt|d u ri }| j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.r/   )auto_populated_fieldsusername_help_text)has_change_permissionhas_add_permissionr   DEBUGr   r   r$   _meta	get_fieldUSERNAME_FIELD	help_textrQ   r'   rd   )r)   r!   rb   rc   username_fieldrS   r-   r/   r0   ra   e   s   

zUserAdmin._add_viewc                 C   st  |  |t|}| ||st|d u r$ttd| jjjt	|d |j
dkrl| ||j}| rk|  | ||d }| ||| td}t|| t||j ttd| jj|jj|jjf |jfdS n| |}d dt|jifg}tj !||i }	tdt	|"  |	||t#|jv pt#|j$v d	d
d
d	d
| jj|d
d	d| j%|}
| jj|_&t'|| j(pd|
S )Nz8%(name)s object with primary key %(key)r does not exist.)r   keyPOSTzPassword changed successfully.z%s:%s_%s_change)argsr:   zChange password: %sTF)title	adminFormrb   rO   is_popupaddchangehas_delete_permissionrg   has_absolute_urloptsoriginalsave_as	show_savez$admin/auth/user/change_password.html))
get_objectr   rg   r   r   _r$   rj   verbose_namer   methodchange_password_formrp   is_validsaveconstruct_change_message
log_changer   r   successr   userr   r   rU   r   	app_label
model_namepklistbase_fieldsr   helpers	AdminFormget_usernamer   GETeach_contextcurrent_appr   change_user_password_template)r)   r!   idrb   r   rO   change_messagemsg	fieldsetsrs   contextr/   r/   r0   rW      sp   





zUserAdmin.user_change_passwordc                    s:   d|j vrt|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)rp   r   copyr'   response_add)r)   r!   rN   post_url_continuer-   r/   r0   r      s   
zUserAdmin.response_addr1   )r]   N)r]   )r2   r3   r4   add_form_templater   r~   r   rL   r	   rO   r
   rP   r   r   list_displaylist_filterr5   r6   r7   rM   rR   rX   rZ   sensitive_post_parameters_mcsrf_protect_mrd   ra   rW   r   r8   r/   r/   r-   r0   r9   (   sD    
	
	>r9   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   r9   r/   r/   r/   r0   <module>   s.    
