
 X."                 @   s  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
 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 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& m' Z( d  d l) m* Z* d  d l+ m, Z, e  e*  Z- e  e,    Z. e j/ e  Gd d   d e j0   Z1 e j/ e  Gd d   d e j0   Z2 d S)    )settings)url)adminmessages)IS_POPUP_VAR)unquote)update_session_auth_hash)AdminPasswordChangeFormUserChangeFormUserCreationForm)GroupUser)PermissionDenied)transaction)Http404HttpResponseRedirect)TemplateResponse)reverse)method_decorator)
force_text)escape)ugettextugettext_lazy)csrf_protect)sensitive_post_parametersc                   s7   e  Z d  Z d Z d Z d Z d   f d d  Z   S)	
GroupAdminnamepermissionsNc                s_   | j  d k r@ | j d | j j j  } | j d  | d <n  t t |   j | d | | S)Nr   Zquerysetcontent_typerequest)	r   getZremote_fieldmodelZobjectsZselect_relatedsuperr   formfield_for_manytomany)selfZdb_fieldr   kwargsqs)	__class__ G/home/ubuntu/projects/ifolica/build/django/django/contrib/auth/admin.pyr#   !   s
    z#GroupAdmin.formfield_for_manytomany)name)r*   )zpermissions)__name__
__module____qualname__search_fieldsorderingfilter_horizontalr#   r(   r(   )r'   r)   r      s   r   c            	       sf  e  Z d  Z d Z d Z d i d& d 6f e d  i d' d 6f e d
  i d( d 6f e d  i d) d 6f f Z d i d* d 6d+ d 6f f Z e Z	 e
 Z e Z d, Z d- Z d. Z d/ Z d0 Z d   f d d  Z d   f d d  Z   f d d   Z   f d d   Z e e e j d d   f d  d!     Z e d d" d#   Z d   f d$ d%  Z   S)1	UserAdminzadmin/auth/user/add_form.htmlNusernamepasswordfieldszPersonal info
first_name	last_nameemailZPermissions	is_activeis_staffis_superusergroupsuser_permissionszImportant dates
last_logindate_joinedwideZclasses	password1	password2c                s&   | s |  j  St t |   j | |  S)N)add_fieldsetsr"   r1   get_fieldsets)r$   r   obj)r'   r(   r)   rC   E   s    zUserAdmin.get_fieldsetsc                sK   i  } | d k r" |  j  | d <n  | j |  t t |   j | | |  S)z7
        Use special form during user creation
        Nform)add_formupdater"   r1   get_form)r$   r   rD   r%   defaults)r'   r(   r)   rH   J   s
    zUserAdmin.get_formc                s8   t  d |  j j |  j  d d g t t |   j   S)Nz^(.+)/password/$r   Zauth_user_password_change)r   
admin_siteZ
admin_viewuser_change_passwordr"   r1   get_urls)r$   )r'   r(   r)   rL   T   s
    	zUserAdmin.get_urlsc                s,   | j  d  r d St t |   j | |  S)Nr3   F)
startswithr"   r1   lookup_allowed)r$   lookupvalue)r'   r(   r)   rN   ]   s    zUserAdmin.lookup_allowed c                s   |  j  |  s? |  j |  r6 t j r6 t d   n  t  n  | d  k rT i  } n  |  j j j |  j j	  } i f  d 6| j
 d 6} | j |  t 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_textrG   r"   r1   add_view)r$   r   form_urlZextra_contextZusername_fieldrI   )r'   r(   r)   rW   c   s    
		zUserAdmin.add_viewc             C   sg  |  j  |  s t  n  |  j | t |   } | d  k rx t t d  i t |  j j j	  d 6t
 |  d 6  n  | j d k rD|  j | | j  } | j   rS| j   |  j | | d   } |  j | | |  t d  } t j | |  t | | j  t t d |  j j | j j | j j f d | j f  Sn |  j |  } d  i t | j  d 6f g } t  j! j" | | i   }	 i t d	  t
 | j#    d
 6|	 d 6| d 6| d 6t$ | j k pt$ | j% k d 6d d 6d d 6d d 6d d 6d d 6|  j j d 6| d 6d d 6d d 6}
 |
 j& |  j j' |   |  j j | _( t) | |  j* p`d |
  S)Nz8%(name)s object with primary key %(key)r does not exist.r   keyPOSTzPassword changed successfully.z%s:%s_%s_changeargsr4   zChange password: %stitle	adminFormrX   rE   Zis_popupTaddFZchangeZhas_delete_permissionrR   Zhas_absolute_urloptsZoriginalZsave_asZ	show_savez$admin/auth/user/change_password.html)+rR   r   Z
get_objectr   r   _r   r!   rT   Zverbose_namer   methodchange_password_formrZ   Zis_validsaveZconstruct_change_messageZ
log_changer   r   successr   userr   r   rJ   r   Z	app_labelZ
model_namepklistZbase_fieldsr   ZhelpersZ	AdminFormZget_usernamer   GETrG   Zeach_contextZcurrent_appr   change_user_password_template)r$   r   idrX   re   rE   Zchange_messagemsg	fieldsetsr]   contextr(   r(   r)   rK      sb    	
		
	zUserAdmin.user_change_passwordc                sJ   d | j  k r. t | j  k r. d | j  d <n  t t |   j | | |  S)z
        Determines 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)rZ   r   r"   r1   response_add)r$   r   rD   Zpost_url_continue)r'   r(   r)   ro      s    zUserAdmin.response_add)usernamezpassword)r5   r6   email)r8   r9   r:   groupsr<   )r=   r>   )r?   )rp   r@   rA   )rp   rq   r5   r6   r9   )r9   r:   r8   rr   )rp   r5   r6   rq   )rp   )rr   r<   )r+   r,   r-   Zadd_form_templateri   r`   rl   rB   r
   rE   r   rF   r	   rb   Zlist_displayZlist_filterr.   r/   r0   rC   rH   rL   rN   sensitive_post_parameters_mcsrf_protect_mr   ZatomicrW   rK   ro   r(   r(   )r'   r)   r1   +   s:   

	!>r1   N)3Zdjango.confr   Zdjango.conf.urlsr   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   Zdjango.httpr   r   Zdjango.template.responser   Zdjango.urlsr   Zdjango.utils.decoratorsr   Zdjango.utils.encodingr   Zdjango.utils.htmlr   Zdjango.utils.translationr   r   r`   Zdjango.views.decorators.csrfr   Zdjango.views.decorators.debugr   rt   rs   registerZ
ModelAdminr   r1   r(   r(   r(   r)   <module>   s0   