Example #1
0
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))
Example #3
0
 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)