summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2010-09-22 23:16:13 -0500
committerDan McGee <dan@archlinux.org>2010-09-22 23:16:13 -0500
commit47c95a2821d1fb926446d2379d4b2273af5482dc (patch)
treebb55f48b4078c7a0097f5db231e12883addf9ec4
parent66d6d33c9b421b14036166e5db311b6d4f0e906c (diff)
downloadarchweb-47c95a2821d1fb926446d2379d4b2273af5482dc.tar.gz
archweb-47c95a2821d1fb926446d2379d4b2273af5482dc.zip
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.py4
-rw-r--r--main/templatetags/cdn.py10
-rw-r--r--settings.py10
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 = (