o 3a!@s:ddlmZddlmZmZddlmZddlmZddl m Z ddl m Z m Z mZddlmZmZddlmZdd lmZmZdd lmZmZdd lmZdd lmZmZdd lm Z ddl!m"Z"ddl#m$Z$m%Z&ddl'm(Z(ddl)m*Z*e e(Z+e e*Z,e-eGdddej.Z/e-eGdddej.Z0dS))settings)adminmessages) IS_POPUP_VAR)unquote)update_session_auth_hash)AdminPasswordChangeFormUserChangeFormUserCreationForm)GroupUser)PermissionDenied)router transaction)Http404HttpResponseRedirect)TemplateResponse)pathreverse)method_decorator)escape)gettext gettext_lazy) csrf_protect)sensitive_post_parameterscs*eZdZdZdZdZdfdd ZZS) GroupAdminname) permissionsNc sB|jdkr|d|jjj}|d|d<tj|fd|i|S)Nrqueryset content_typerequest)rget remote_fieldmodelobjectsselect_relatedsuperformfield_for_manytomany)selfdb_fieldr!kwargsqs __class__;/usr/lib/python3/dist-packages/django/contrib/auth/admin.pyr(s z#GroupAdmin.formfield_for_manytomanyN)__name__ __module__ __qualname__ search_fieldsorderingfilter_horizontalr( __classcell__r/r/r-r0rs rcseZdZdZdZdddifedddifedddifed dd iffZdd d d ffZeZ e Z e Z dZdZdZdZdZd$fdd Zd$fdd ZfddZfddZeed%ddZd%fdd Zed&d d!Zd$fd"d# ZZS)' UserAdminzadmin/auth/user/add_form.htmlNfields)usernamepasswordz Personal info) first_name last_nameemail Permissions) is_activeis_staff is_superusergroupsuser_permissionszImportant dates) last_login date_joined)wide)r; password1 password2)classesr:)r;r?r=r>rB)rBrCrArD)r;r=r>r?)r;)rDrEcs|s|jSt||Sr1) add_fieldsetsr' get_fieldsets)r)r!objr-r/r0rMCszUserAdmin.get_fieldsetsc s6i}|dur |j|d<||tj||fi|S)z7 Use special form during user creation Nform)add_formupdater'get_form)r)r!rNr+defaultsr-r/r0rRHs   zUserAdmin.get_formcs$td|j|jddgtS)Nz/password/auth_user_password_changer)r admin_site admin_viewuser_change_passwordr'get_urls)r)r-r/r0rXRs zUserAdmin.get_urlscs|d o t||S)Nr<) startswithr'lookup_allowed)r)lookupvaluer-r/r0rZ[szUserAdmin.lookup_allowedcCsFtjt|jd||||WdS1swYdS)N)using)ratomicr db_for_writer$ _add_view)r)r!form_url extra_contextr/r/r0add_view_s $zUserAdmin.add_viewcsj||s||rtjrtdt|duri}|jj|jj }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_fieldsusername_help_text)has_change_permissionhas_add_permissionrDEBUGrr r$_meta get_fieldUSERNAME_FIELD help_textrQr'rd)r)r!rbrcusername_fieldrSr-r/r0raes  zUserAdmin._add_viewc Cst||t|}|||st|dur$ttd|jjjt |d|j dkrl| ||j }| rk||||d}||||td}t||t||jttd|jj|jj|jjf|jfdSn| |}ddt|jifg}tj !||i} tdt |"| ||t#|j vpt#|j$vd d d d d |jj|d d d |j%|} |jj|_&t'||j(pd | S) Nz8%(name)s object with primary key %(key)r does not exist.)rkeyPOSTzPassword changed successfully.z%s:%s_%s_change)argsr:zChange password: %sTF)title adminFormrbrOis_popupaddchangehas_delete_permissionrghas_absolute_urloptsoriginalsave_as show_savez$admin/auth/user/change_password.html)) get_objectrrgr r_r$rj verbose_namermethodchange_password_formrpis_validsaveconstruct_change_message log_changerrsuccessruserrrrUr app_label model_namepklist base_fieldsrhelpers AdminForm get_usernamerGET each_context current_apprchange_user_password_template) r)r!idrbrrOchange_messagemsg fieldsetsrscontextr/r/r0rWsp        zUserAdmin.user_change_passwordcs:d|jvrt|jvr|j|_d|jd<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)rprcopyr' response_add)r)r!rNpost_url_continuer-r/r0rs  zUserAdmin.response_addr1)r]N)r])r2r3r4add_form_templaterr~rrLr rOr rPrr list_display list_filterr5r6r7rMrRrXrZsensitive_post_parameters_mcsrf_protect_mrdrarWrr8r/r/r-r0r9(sD    >r9N)1 django.confrdjango.contribrrdjango.contrib.admin.optionsrdjango.contrib.admin.utilsrdjango.contrib.authrdjango.contrib.auth.formsrr r django.contrib.auth.modelsr r django.core.exceptionsr django.dbrr django.httprrdjango.template.responser django.urlsrrdjango.utils.decoratorsrdjango.utils.htmlrdjango.utils.translationrrr~django.views.decorators.csrfrdjango.views.decorators.debugrrrregister ModelAdminrr9r/r/r/r0s.