3
g!                 @   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j-eG dd dej.Z/ej-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*|jd|jjj}|jd|d< t j|fd|i|S )Nr   Zquerysetcontent_typerequest)r   getZremote_fieldmodelZobjectsZselect_relatedsuperformfield_for_manytomany)selfZdb_fieldr   kwargsqs)	__class__ W/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/contrib/auth/admin.pyr#      s    
z#GroupAdmin.formfield_for_manytomany)r   )r   )r   )N)__name__
__module____qualname__search_fieldsorderingfilter_horizontalr#   __classcell__r(   r(   )r'   r)   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d0Zd1Zd2Zd3 fdd	Zd4 fdd	Z fddZ fddZeed5d d!Zd6 fd"d#	Zed7d$d%Zd8 fd&d'	Z  ZS )9	UserAdminzadmin/auth/user/add_form.htmlNfieldsusernamepasswordzPersonal info
first_name	last_nameemailZPermissions	is_activeis_staffis_superusergroupsuser_permissionszImportant dates
last_logindate_joinedwide	password1	password2)classesr2   c                s   |s
| j S t j||S )N)add_fieldsetsr"   get_fieldsets)r$   r   obj)r'   r(   r)   rD   C   s    zUserAdmin.get_fieldsetsc                s2   i }|dkr| j |d< |j| t j||f|S )z7
        Use special form during user creation
        Nform)add_formupdater"   get_form)r$   r   rE   r%   defaults)r'   r(   r)   rI   H   s
    

zUserAdmin.get_formc                s$   t d| jj| jddgt j  S )Nz<id>/password/Zauth_user_password_change)r   )r   
admin_siteZ
admin_viewuser_change_passwordr"   get_urls)r$   )r'   r(   r)   rM   R   s
    zUserAdmin.get_urlsc                s   |j d ot j||S )Nr4   )
startswithr"   lookup_allowed)r$   lookupvalue)r'   r(   r)   rO   [   s    zUserAdmin.lookup_allowed c             C   s.   t jtj| jd | j|||S Q R X d S )N)Zusing)r   Zatomicr   Zdb_for_writer!   	_add_view)r$   r   form_urlextra_contextr(   r(   r)   add_view_   s    zUserAdmin.add_viewc                sj   | j |s&| j|r"tjr"tdt|d kr2i }| jjj| jj	}f |j
d}|j| t j|||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.)Zauto_populated_fieldsZusername_help_text)has_change_permissionZhas_add_permissionr   DEBUGr   r   r!   _meta	get_fieldZUSERNAME_FIELD	help_textrH   r"   rV   )r$   r   rT   rU   Zusername_fieldrJ   )r'   r(   r)   rS   e   s    


zUserAdmin._add_viewc             C   sx  | j |t|}| j||s t|d krHttd| jjjt	|d |j
dkr| j||j}|j r|j  | j||d }| j||| td}tj|| t||j ttd| jj|jj|jjf |jfdS n
| j|}d dt|jifg}tj j!||i }	tdt	|j"  |	||t#|jkp2t#|j$kd	d
d
d	d
| jj|d
d	d| jj%|}
| jj|_&t'|| j(prd|
S )Nz8%(name)s object with primary key %(key)r does not exist.)r   keyPOSTzPassword changed successfully.z%s:%s_%s_change)argsr2   zChange password: %sTF)title	adminFormrT   rF   Zis_popupaddZchangeZhas_delete_permissionrW   Zhas_absolute_urloptsoriginalZsave_asZ	show_savez$admin/auth/user/change_password.html))Z
get_objectr   rW   r   r   _r!   rY   Zverbose_namer   methodchange_password_formr]   Zis_validsaveZconstruct_change_messageZ
log_changer   r   successr   userr   r   rK   r   Z	app_labelZ
model_namepklistZbase_fieldsr   ZhelpersZ	AdminFormZget_usernamer   GETZeach_contextZcurrent_appr   change_user_password_template)r$   r   idrT   ri   rF   Zchange_messagemsg	fieldsetsr`   contextr(   r(   r)   rL      s`    



zUserAdmin.user_change_passwordc                s:   d|j kr*t|j kr*|j j |_ d|j d< t j|||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.
        Z_addanother   Z	_continue)r]   r   copyr"   response_add)r$   r   rE   Zpost_url_continue)r'   r(   r)   rt      s    
zUserAdmin.response_add)r3   r4   )r5   r6   r7   )r8   r9   r:   r;   r<   )r=   r>   )r?   )r3   r@   rA   )r3   r7   r5   r6   r9   )r9   r:   r8   r;   )r3   r5   r6   r7   )r3   )r;   r<   )N)N)rR   N)rR   N)rR   )N)r*   r+   r,   Zadd_form_templaterm   rd   rp   rC   r	   rF   r
   rG   r   rf   Zlist_displayZlist_filterr-   r.   r/   rD   rI   rM   rO   sensitive_post_parameters_mcsrf_protect_mrV   rS   rL   rt   r0   r(   r(   )r'   r)   r1   (   s:   

	>r1   N)1Zdjango.confr   Zdjango.contribr   r   Zdjango.contrib.admin.optionsr   Zdjango.contrib.admin.utilsr   Zdjango.contrib.authr   Zdjango.contrib.auth.formsr   r	   r
   Zdjango.contrib.auth.modelsr   r   Zdjango.core.exceptionsr   Z	django.dbr   r   Zdjango.httpr   r   Zdjango.template.responser   Zdjango.urlsr   r   Zdjango.utils.decoratorsr   Zdjango.utils.htmlr   Zdjango.utils.translationr   r   rd   Zdjango.views.decorators.csrfr   Zdjango.views.decorators.debugr   rv   ru   registerZ
ModelAdminr   r1   r(   r(   r(   r)   <module>   s,   

