def admin_honeypot(request, extra_context=None): if not request.path.endswith('/'): return redirect(request.path + '/', permanent=True) path = request.get_full_path() context = { 'app_path': path, 'form': HoneypotLoginForm(request, request.POST or None), REDIRECT_FIELD_NAME: path, 'title': _('Log in'), } context['form'].is_valid() context.update(extra_context or {}) if len(path) > 255: path = path[:230] + '...(%d chars)' % len(path) if request.method == 'POST': failed = LoginAttempt.objects.create( username=request.POST.get('username'), password=request.POST.get('password'), session_key=request.session.session_key, ip_address=request.META.get('REMOTE_ADDR'), user_agent=request.META.get('HTTP_USER_AGENT'), path=path, ) honeypot.send(sender=LoginAttempt, instance=failed, request=request) return render_to_response('admin_honeypot/login.html', context, context_instance=RequestContext(request))
def admin_honeypot(request, extra_context=None): if not request.path.endswith("/"): return redirect(request.path + "/", permanent=True) path = request.get_full_path() context = { "app_path": path, "form": HoneypotLoginForm(request, request.POST or None), REDIRECT_FIELD_NAME: path, "site": Site.objects.get_current(), "title": _("Log in"), } context["form"].is_valid() context.update(extra_context or {}) if len(path) > 255: path = path[:230] + "...(%d chars)" % len(path) if request.method == "POST": failed = LoginAttempt.objects.create( username=request.POST.get("username"), password=request.POST.get("password"), session_key=request.session.session_key, ip_address=request.META.get("REMOTE_ADDR"), user_agent=request.META.get("HTTP_USER_AGENT"), path=path, ) honeypot.send(sender=LoginAttempt, instance=failed, request=request) return render_to_response("admin_honeypot/login.html", context, context_instance=RequestContext(request))
def form_invalid(self, form): instance = LoginAttempt.objects.create( username=self.request.POST.get('username'), session_key=self.request.session.session_key, ip_address=self.request.META.get('REMOTE_ADDR'), user_agent=self.request.META.get('HTTP_USER_AGENT'), path=self.request.get_full_path(), ) honeypot.send(sender=LoginAttempt, instance=instance, request=self.request) return super(AdminHoneypot, self).form_invalid(form)