X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/94b59f440321846760d430fee378f05a6a2803ee..5444af981c8c3161ed7991d0fb0fd7463175fc7e:/app/controllers/api/traces_controller.rb diff --git a/app/controllers/api/traces_controller.rb b/app/controllers/api/traces_controller.rb index 8401e78ae..86f1370f6 100644 --- a/app/controllers/api/traces_controller.rb +++ b/app/controllers/api/traces_controller.rb @@ -1,23 +1,21 @@ module Api - class TracesController < ApplicationController + class TracesController < ApiController layout "site", :except => :georss - skip_before_action :verify_authenticity_token before_action :authorize_web before_action :set_locale before_action :authorize - before_action :api_deny_access_handler 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 + def show trace = Trace.visible.find(params[:id]) if trace.public? || trace.user == current_user @@ -27,7 +25,7 @@ module Api end end - def api_update + def update trace = Trace.visible.find(params[:id]) if trace.user == current_user @@ -40,12 +38,13 @@ module Api end end - def api_delete + def destroy trace = Trace.visible.find(params[:id]) if trace.user == current_user trace.visible = false trace.save! + TraceDestroyerJob.perform_later(trace) if Settings.trace_use_job_queue head :ok else @@ -53,7 +52,7 @@ module Api end end - def api_data + def data trace = Trace.visible.find(params[:id]) if trace.public? || trace.user == current_user @@ -69,7 +68,7 @@ module Api end end - def api_create + def create tags = params[:tags] || "" description = params[:description] || "" visibility = params[:visibility] @@ -86,6 +85,7 @@ module Api trace = do_create(params[:file], tags, description, visibility) if trace.id + TraceImporterJob.perform_later(trace) if Settings.trace_use_job_queue render :plain => trace.id.to_s elsif trace.valid? head :internal_server_error @@ -163,7 +163,7 @@ module Api end def offline_redirect - redirect_to :action => :offline if STATUS == :gpx_offline + redirect_to :action => :offline if Settings.status == "gpx_offline" end end end