]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/trace_controller.rb
Add support for domain based ACLs
[rails.git] / app / controllers / trace_controller.rb
index 1ca28246f9ce0a723a85dd4be733f8a02f3fdbcd..dbb8a6f2cb8ef4144e4e8d2eb47863fcb2b0d743 100644 (file)
@@ -1,6 +1,7 @@
 class TraceController < ApplicationController
   layout 'site'
 
+  skip_before_filter :verify_authenticity_token, :only => [:api_create, :api_read, :api_update, :api_delete, :api_data]
   before_filter :authorize_web
   before_filter :set_locale
   before_filter :require_user, :only => [:mine, :create, :edit, :delete]
@@ -162,7 +163,9 @@ class TraceController < ApplicationController
     trace = Trace.find(params[:id])
 
     if trace.visible? and (trace.public? or (@user and @user == trace.user))
-      if request.format == Mime::XML
+      if Acl.match(request.remote_ip).where(:k => "no_trace_download").exists?
+        render :nothing => true, :status => :forbidden
+      elsif request.format == Mime::XML
         send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => Mime::XML.to_s, :disposition => 'attachment')
       else
         send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => 'attachment')