diff options
Diffstat (limited to 'debug_toolbar/middleware.py')
| -rw-r--r-- | debug_toolbar/middleware.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py index 9c46079..e4d7494 100644 --- a/debug_toolbar/middleware.py +++ b/debug_toolbar/middleware.py @@ -1,15 +1,16 @@ """ Debug Toolbar middleware """ +import os + from django.conf import settings from django.http import HttpResponseRedirect from django.shortcuts import render_to_response from django.utils.encoding import smart_unicode from django.conf.urls.defaults import include, patterns + import debug_toolbar.urls from debug_toolbar.toolbar.loader import DebugToolbar -from debug_toolbar.urls import DEBUG_TB_URL_PREFIX -import os _HTML_TYPES = ('text/html', 'application/xhtml+xml') @@ -36,11 +37,21 @@ class DebugToolbarMiddleware(object): self.original_pattern = patterns('', ('', include(self.original_urlconf)),) self.override_url = True - def show_toolbar(self, request): + # Set method to use to decide to show toolbar + self.show_toolbar = self._show_toolbar # default + if hasattr(settings, 'DEBUG_TOOLBAR_CONFIG'): + show_toolbar_callback = settings.DEBUG_TOOLBAR_CONFIG.get( + 'SHOW_TOOLBAR_CALLBACK', None) + if show_toolbar_callback: + self.show_toolbar = show_toolbar_callback + + def _show_toolbar(self, request): if not settings.DEBUG: return False - if request.is_ajax() and not request.path.startswith(os.path.join('/', DEBUG_TB_URL_PREFIX)): #Allow ajax requests from the debug toolbar - return False + if request.is_ajax() and not \ + request.path.startswith(os.path.join('/', debug_toolbar.urls._PREFIX)): + # Allow ajax requests from the debug toolbar + return False if not request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS: return False return True |
