Only display secure media objects when on HTTPS.

Not all links that have media objects will have secure media objects, so
a subset of content will have embeds when accessing the site over HTTPS.
This commit is contained in:
Neil Williams
2013-09-09 14:23:04 -07:00
parent 52765b7c53
commit 08d1095edd
3 changed files with 19 additions and 9 deletions

View File

@@ -20,7 +20,7 @@
# Inc. All Rights Reserved.
###############################################################################
from pylons import request, g
from pylons import request, g, c
from pylons.controllers.util import abort
from r2.controllers.reddit_base import MinimalController
@@ -37,11 +37,16 @@ class MediaembedController(MinimalController):
# specifically untrusted domain
abort(404)
if not link or not link.media_object:
if not c.secure:
media_object = link.media_object
else:
media_object = link.secure_media_object
if not media_object:
abort(404)
elif isinstance(link.media_object, dict):
elif isinstance(media_object, dict):
# otherwise it's the new style, which is a dict(type=type, **args)
media_embed = get_media_embed(link.media_object)
media_embed = get_media_embed(media_object)
content = media_embed.content
return MediaEmbedBody(body = content).render()

View File

@@ -3509,13 +3509,18 @@ def make_link_child(item):
editable = False
# if the item has a media_object, try to make a MediaEmbed for rendering
if item.media_object:
if not c.secure:
media_object = item.media_object
else:
media_object = item.secure_media_object
if media_object:
media_embed = None
if isinstance(item.media_object, basestring):
media_embed = item.media_object
if isinstance(media_object, basestring):
media_embed = media_object
else:
try:
media_embed = media.get_media_embed(item.media_object)
media_embed = media.get_media_embed(media_object)
except TypeError:
g.log.warning("link %s has a bad media object" % item)
media_embed = None

View File

@@ -23,7 +23,7 @@
<%!
from r2.lib.utils import randstr
%>
<iframe src="http://${thing.media_domain}/mediaembed/${thing.id36}"
<iframe src="//${thing.media_domain}/mediaembed/${thing.id36}"
id="media-embed-${thing.id36}-${randstr(3)}" class="media-embed"
width="${thing.width}" height="${thing.height}" border="0"
frameBorder="0" scrolling="${'auto' if thing.scrolling else 'no'}"