diff options
author | Dan McGee <dan@archlinux.org> | 2010-09-22 23:16:13 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2010-09-22 23:16:13 -0500 |
commit | 47c95a2821d1fb926446d2379d4b2273af5482dc (patch) | |
tree | bb55f48b4078c7a0097f5db231e12883addf9ec4 | |
parent | 66d6d33c9b421b14036166e5db311b6d4f0e906c (diff) |
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 <dan@archlinux.org>
-rw-r--r-- | main/context_processors.py | 4 | ||||
-rw-r--r-- | main/templatetags/cdn.py | 10 | ||||
-rw-r--r-- | settings.py | 10 |
3 files changed, 19 insertions, 5 deletions
diff --git a/main/context_processors.py b/main/context_processors.py new file mode 100644 index 00000000..a60d4e63 --- /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 ef6bb144..ff45e524 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 '<script type="text/javascript" src="%s"></script>' % jquery diff --git a/settings.py b/settings.py index 3a7db393..ea87c2cd 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 = ( |