Skip to content
Snippets Groups Projects
Unverified Commit 73210884 authored by Arnaud Levy's avatar Arnaud Levy Committed by GitHub
Browse files

Merge pull request #1327 from noesya/better-video-csp-domains

Amélioration des politiques de sécurité liées aux vidéos
parents b484072b 1d48a10c
No related branches found
No related tags found
No related merge requests found
......@@ -34,7 +34,7 @@ module Communication::Website::WithSecurity
blocks.where(template_kind: :video).each do |block|
video_url = block.template.url
next unless video_url.present?
list << Video::Provider.find(video_url).csp_domain
list.concat Video::Provider.find(video_url).csp_domains
end
list
end
......
class Video::Provider::Dailymotion < Video::Provider::Default
DOMAINS = ['dailymotion.com', 'dai.ly']
DOMAINS = [
'dailymotion.com',
'dai.ly'
]
def identifier
video_url.include?('dai.ly') ? video_url.split('dai.ly/').last
: video_url.split('video/').last
end
def csp_domains
DOMAINS
end
# https://www.dailymotion.com/thumbnail/video/x8lyp39
def poster
"https://www.dailymotion.com/thumbnail/video/#{identifier}"
......
......@@ -17,14 +17,18 @@ class Video::Provider::Default
video_url
end
def csp_domain
URI.parse(iframe_url).host
def csp_domains
[host]
end
def identifier
''
end
def host
URI.parse(iframe_url).host
end
def poster
''
end
......
class Video::Provider::Peertube < Video::Provider::Default
DOMAINS = ['peertube.fr']
DOMAINS = [
'peertube.fr'
]
def identifier
video_url.split('/w/').last
......
class Video::Provider::Vimeo < Video::Provider::Default
DOMAINS = ['vimeo.com']
DOMAINS = [
'vimeo.com',
'player.vimeo.com',
'vumbnail.com'
]
def identifier
video_url.chomp('/').split('/').last
end
def csp_domains
DOMAINS
end
# https://vumbnail.com/621585396.jpg
def poster
"https://vumbnail.com/#{identifier}.jpg"
......
class Video::Provider::Youtube < Video::Provider::Default
DOMAINS = ['youtube.com', 'youtu.be']
DOMAINS = [
'youtube.com',
'www.youtube.com',
'img.youtube.com',
'youtu.be',
]
def identifier
video_url.include?('youtu.be') ? video_url.split('youtu.be/').last
: video_url.split('v=').last
end
def csp_domains
DOMAINS
end
# https://img.youtube.com/vi/XEEUOiTgJL0/hqdefault.jpg
def poster
"https://img.youtube.com/vi/#{identifier}/hqdefault.jpg"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment