From 47c95a2821d1fb926446d2379d4b2273af5482dc Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Wed, 22 Sep 2010 23:16:13 -0500 Subject: Get secure/unsecure checking actually working We need a bit more, like actually having something relevant in the RequestContext object, in order for this to all work. Instead of putting the full request in just populate a 'secure' key with a boolean value indicating whether the request is secure. Signed-off-by: Dan McGee --- main/context_processors.py | 4 ++++ main/templatetags/cdn.py | 10 +++++----- settings.py | 10 ++++++++++ 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 main/context_processors.py diff --git a/main/context_processors.py b/main/context_processors.py new file mode 100644 index 0000000..a60d4e6 --- /dev/null +++ b/main/context_processors.py @@ -0,0 +1,4 @@ +def secure(request): + return {'secure': request.is_secure()} + +# vim: set ts=4 sw=4 et: diff --git a/main/templatetags/cdn.py b/main/templatetags/cdn.py index ef6bb14..ff45e52 100644 --- a/main/templatetags/cdn.py +++ b/main/templatetags/cdn.py @@ -11,13 +11,13 @@ class JQueryNode(template.Node): def render(self, context): # if we have the request in context, we can check if it is secure and # serve content from HTTPS instead. - secure = 'request' in context and context['request'].is_secure() + secure = 'secure' in context and context['secure'] + prefixes = { False: 'http', True: 'https' } version = '1.4.2' oncdn = getattr(settings, 'CDN_ENABLED', True) - if oncdn and secure: - jquery = 'https://ajax.googleapis.com/ajax/libs/jquery/%s/jquery.min.js' % version - elif oncdn: - jquery = 'http://ajax.googleapis.com/ajax/libs/jquery/%s/jquery.min.js' % version + if oncdn: + jquery = '%s://ajax.googleapis.com/ajax/libs/jquery/' \ + '%s/jquery.min.js' % (prefixes[secure], version) else: jquery = '/media/jquery-%s.min.js' % version return '' % jquery diff --git a/settings.py b/settings.py index 3a7db39..ea87c2c 100644 --- a/settings.py +++ b/settings.py @@ -52,6 +52,16 @@ TEMPLATE_LOADERS = ( 'django.template.loaders.app_directories.load_template_source', ) +# We add a processor to determine if the request is secure or not +TEMPLATE_CONTEXT_PROCESSORS = ( + 'django.contrib.auth.context_processors.auth', + 'django.core.context_processors.debug', + 'django.core.context_processors.i18n', + 'django.core.context_processors.media', + 'django.contrib.messages.context_processors.messages', + 'main.context_processors.secure', +) + # This bug is a real bummer: # http://code.djangoproject.com/ticket/14105 MIDDLEWARE_CLASSES = ( -- cgit v1.2.3-24-g4f1b