Firebug Lite Middleware

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from django.core import exceptions
from django.conf import settings

class FirebugMiddleware(object):

    def __init__(self):
        if not settings.DEBUG:
            raise exceptions.MiddlewareNotUsed

        try:
            self.firebug_url = settings.FIREBUG_URL
        except AttributeError:
            self.firebug_url = 'http://getfirebug.com/releases/lite/' + \
                '1.2/firebug-lite-compressed.js'

    def process_response(self, request, response):
        if (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS and
            request.META.get('HTTP_USER_AGENT').lower().find('gecko', 0) < 0):
            index = response.content.lower().find('</head>')
            if index != -1:
                response.content = '\n'.join([response.content[:index],
                    self.firebug_html, response.content[index:]])
        return response

    @property
    def firebug_html(self):
        return '<script type="text/javascript" src="%s"></script>' % (
            self.firebug_url)

More like this

  1. Include entire networks in INTERNAL_IPS setting by pmclanahan 4 years, 2 months ago
  2. Globs for INTERNAL_IPS by kcarnold 4 years, 2 months ago
  3. Output sql_queries in Firebug console when in debug mode by wojas 3 years, 2 months ago
  4. Support IP ranges in INTERNAL_IPS by jdunck 3 years, 4 months ago
  5. Middleware to prevent access to the admin when user ip not in INTERNAL_IPS by jezdez 2 years, 10 months ago

Comments

jfw (on October 13, 2008):

Somehow the language got set to JavaScript, and now I can't change it, but I assure you it is Python.

#

codekoala (on February 9, 2009):

Thank you for this snippet!! I've shared it with several of my friends.

#

(Forgotten your password?)