from django.conf import settings from django.template import loader, RequestContext from nadmin.sites import site from nadmin.views import BaseAdminPlugin, CommAdminView class SetLangNavPlugin(BaseAdminPlugin): def block_top_navmenu(self, context, nodes): nodes.append( loader.render_to_string('nadmin/blocks/comm.top.setlang.html', { 'redirect_to': self.request.get_full_path(), }, context_instance=RequestContext(self.request))) if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings.MIDDLEWARE_CLASSES: site.register_plugin(SetLangNavPlugin, CommAdminView) site.register_view(r'^i18n/', lambda site: 'django.conf.urls.i18n', 'i18n')
'domain_override': request.get_host() } if self.password_reset_from_email: opts['from_email'] = self.password_reset_from_email if self.password_reset_subject_template: opts['subject_template_name'] = self.password_reset_subject_template form.save(**opts) context = super(ResetPasswordSendView, self).get_context() return TemplateResponse(request, self.password_reset_done_template, context, current_app=self.admin_site.name) else: return self.get(request, form=form) site.register_view(r'^nadmin/password_reset/$', ResetPasswordSendView, name='nadmin_password_reset') class ResetLinkPlugin(BaseAdminPlugin): def block_form_bottom(self, context, nodes): reset_link = self.get_admin_url('nadmin_password_reset') return '<div class="text-info" style="margin-top:15px;"><a href="%s"><i class="fa fa-question-sign"></i> %s</a></div>' % (reset_link, _('Forgotten your password or username?')) site.register_plugin(ResetLinkPlugin, LoginView) class ResetPasswordComfirmView(BaseAdminView): need_site_permission = False password_reset_set_form = SetPasswordForm
change_password_form = PasswordChangeForm @csrf_protect_m def get(self, request): self.obj = self.user self.form = self.change_password_form(self.obj) return self.get_response() def get_context(self): context = super(ChangeAccountPasswordView, self).get_context() context.update({"title": _("Change password"), "account_view": True}) return context @method_decorator(sensitive_post_parameters()) @csrf_protect_m def post(self, request): self.obj = self.user self.form = self.change_password_form(self.obj, request.POST) if self.form.is_valid(): self.form.save() self.message_user(_("Password changed successfully."), "success") return HttpResponseRedirect(self.get_admin_url("index")) else: return self.get_response() site.register_view(r"^auth/user/(.+)/update/password/$", ChangePasswordView, name="user_change_password") site.register_view(r"^account/password/$", ChangeAccountPasswordView, name="account_password")