]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/trace_controller.rb
When displaying objects in /browse/* and in the JavaScript "Data"
[rails.git] / app / controllers / trace_controller.rb
index 1dee0b9248ee539549e7e5ff898350db28c87b6a..b29b6dde1b0e06fd8fbeca14b2483d167715da03 100644 (file)
@@ -9,6 +9,8 @@ class TraceController < ApplicationController
   before_filter :check_database_writable, :only => [:create, :edit, :delete]
   before_filter :check_api_readable, :only => [:api_details, :api_data]
   before_filter :check_api_writable, :only => [:api_create]
+  before_filter :require_allow_read_gpx, :only => [:api_details, :api_data]
+  before_filter :require_allow_write_gpx, :only => [:api_create]
  
   # Counts and selects pages of GPX traces for various criteria (by user, tags, public etc.).
   #  target_user - if set, specifies the user to fetch traces for.  if not set will fetch all traces
@@ -291,12 +293,16 @@ class TraceController < ApplicationController
     if request.post?
       tags = params[:tags] || ""
       description = params[:description] || ""
-      visibility = params[:visibility] || false
+      visibility = params[:visibility]
 
-      if params[:public] && !visibility
-        visibility = "public"
+      if visibility.nil?
+        if params[:public] && params[:public].to_i.nonzero?
+          visibility = "public"
+        else
+          visibility = "private"
+        end
       end
-      
+
       if params[:file].respond_to?(:read)
         do_create(params[:file], tags, description, visibility)