Adds a Site Setting to whitelist onebox domains

This commit is contained in:
Robin Ward 2014-04-09 16:57:45 -04:00
parent f8964bf453
commit b0405d7cfa
4 changed files with 23 additions and 2 deletions

View File

@ -1682,6 +1682,7 @@ en:
files: 'Files'
trust: 'Trust Levels'
security: 'Security'
onebox: "Onebox"
seo: 'SEO'
spam: 'Spam'
rate_limits: 'Rate Limits'

View File

@ -610,6 +610,7 @@ en:
post_excerpt_maxlength: "Maximum length in chars of a post's excerpt"
post_onebox_maxlength: "Maximum length of a oneboxed Discourse post"
onebox_domains_whitelist: "A list of domains to whitelist for oneboxing. (Example: eviltrout.com)"
category_post_template: "The post template used when you create a new category"
logo_url: "The logo for your site eg: http://example.com/logo.png"

View File

@ -228,7 +228,6 @@ posting:
default: -1
hidden: true
post_excerpt_maxlength: 300
post_onebox_maxlength: 500
display_name_on_posts:
client: true
default: false
@ -336,12 +335,18 @@ trust:
regular_requires_topic_reply_count: 3
security:
enable_flash_video_onebox: false
use_https: false
enable_escaped_fragments: true
allow_index_in_robots_txt: true
enable_noscript_support: true
onebox:
enable_flash_video_onebox: false
post_onebox_maxlength: 500
onebox_domains_whitelist:
default: ''
list: true
spam:
add_rel_nofollow_to_user_content: true
exclude_rel_nofollow_domains:

View File

@ -99,9 +99,23 @@ module Oneboxer
"onebox__#{url}"
end
def self.add_discourse_whitelists
# Add custom domain whitelists
if SiteSetting.onebox_domains_whitelist.present?
domains = SiteSetting.onebox_domains_whitelist.split('|')
whitelist = Onebox::Engine::WhitelistedGenericOnebox.whitelist
whitelist.concat(domains)
whitelist.uniq!
end
end
def self.onebox_raw(url)
Rails.cache.fetch(onebox_cache_key(url)){
begin
# This might be able to move to whenever the SiteSetting changes?
Oneboxer.add_discourse_whitelists
r = Onebox.preview(url, cache: {})
{
onebox: r.to_s,