X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/0c79686f3cef86330d0ab6bbef2a9e2275ac93ac..3a16c465f7c3244fd40dccd5ca9d7ec0fbf4af90:/app/controllers/api/traces_controller.rb diff --git a/app/controllers/api/traces_controller.rb b/app/controllers/api/traces_controller.rb index 5e95892e1..8979704a7 100644 --- a/app/controllers/api/traces_controller.rb +++ b/app/controllers/api/traces_controller.rb @@ -8,24 +8,20 @@ module Api authorize_resource - before_action :check_database_readable, :except => [:api_read, :api_data] - before_action :check_database_writable, :only => [:api_create, :api_update, :api_delete] - before_action :check_api_readable, :only => [:api_read, :api_data] - before_action :check_api_writable, :only => [:api_create, :api_update, :api_delete] - before_action :offline_redirect, :only => [:api_create, :api_delete, :api_data] + before_action :check_database_readable, :except => [:show, :data] + before_action :check_database_writable, :only => [:create, :update, :destroy] + before_action :check_api_readable, :only => [:show, :data] + before_action :check_api_writable, :only => [:create, :update, :destroy] + before_action :offline_redirect, :only => [:create, :destroy, :data] around_action :api_call_handle_error - def api_read - trace = Trace.visible.find(params[:id]) + def show + @trace = Trace.visible.find(params[:id]) - if trace.public? || trace.user == current_user - render :xml => trace.to_xml.to_s - else - head :forbidden - end + head :forbidden unless @trace.public? || @trace.user == current_user end - def api_update + def update trace = Trace.visible.find(params[:id]) if trace.user == current_user @@ -38,7 +34,7 @@ module Api end end - def api_delete + def destroy trace = Trace.visible.find(params[:id]) if trace.user == current_user @@ -52,7 +48,7 @@ module Api end end - def api_data + def data trace = Trace.visible.find(params[:id]) if trace.public? || trace.user == current_user @@ -68,7 +64,7 @@ module Api end end - def api_create + def create tags = params[:tags] || "" description = params[:description] || "" visibility = params[:visibility] @@ -85,7 +81,7 @@ module Api trace = do_create(params[:file], tags, description, visibility) if trace.id - TraceImporterJob.perform_later(@trace) if Settings.trace_use_job_queue + TraceImporterJob.perform_later(trace) if Settings.trace_use_job_queue render :plain => trace.id.to_s elsif trace.valid? head :internal_server_error