Don't allow people to proxy a path to itself, or to another proxy.

This commit is contained in:
Ben Hollis 2012-07-07 20:36:37 -07:00
parent 6dad42bc77
commit 12c551228f

View file

@ -31,6 +31,8 @@ module Middleman
# @param [String] target
# @return [void]
def proxy_to(target)
target = ::Middleman::Util.normalize_path(target)
raise "You can't proxy #{path} to itself!" if target == path
@proxied_to = target
end
@ -55,9 +57,13 @@ module Middleman
proxy_resource = store.find_resource_by_path(proxied_to)
unless proxy_resource
raise "Path #{path} proxies to unknown file #{proxied_to}"
raise "Path #{path} proxies to unknown file #{proxied_to}:#{store.resources.map(&:path)}"
end
if proxy_resource.proxy?
raise "You can't proxy #{path} to #{proxied_to} which is itself a proxy."
end
proxy_resource.source_file
end
end
@ -105,4 +111,4 @@ module Middleman
end
end
end
end
end