layout 'site'
before_filter :authorize_web
+ before_filter :require_user, :only => [:mine, :edit, :delete, :make_public]
before_filter :authorize, :only => [:api_details, :api_data, :api_create]
before_filter :check_database_availability, :except => [:api_details, :api_data, :api_create]
before_filter :check_read_availability, :only => [:api_details, :api_data, :api_create]
if params[:tag]
@tag = params[:tag]
- conditions[0] += " AND EXISTS (SELECT * FROM gpx_file_tags AS gft WHERE gft.gpx_id = gpx_files.id AND gft.tag = ?)"
- conditions << @tag
+
+ files = Tracetag.find_all_by_tag(params[:tag]).collect { |tt| tt.gpx_id }
+ conditions[0] += " AND gpx_files.id IN (#{files.join(',')})"
end
conditions[0] += " AND gpx_files.visible = ?"
end
def mine
- if @user
- list(@user, "mine") unless @user.nil?
- else
- redirect_to :controller => 'user', :action => 'login', :referer => request.request_uri
- end
+ list(@user, "mine")
end
def view
send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => 'attachment')
end
else
- render :nothing, :status => :not_found
+ render :nothing => true, :status => :not_found
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
end
end
else
- render :nothing, :status => :forbidden
+ render :nothing => true, :status => :forbidden
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
flash[:notice] = 'Track scheduled for deletion'
redirect_to :controller => 'traces', :action => 'mine'
else
- render :nothing, :status => :bad_request
+ render :nothing => true, :status => :bad_request
end
else
- render :nothing, :status => :forbidden
+ render :nothing => true, :status => :forbidden
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
flash[:notice] = 'Track made public'
redirect_to :controller => 'trace', :action => 'view', :id => params[:id]
else
- render :nothing, :status => :bad_request
+ render :nothing => true, :status => :bad_request
end
else
- render :nothing, :status => :forbidden
+ render :nothing => true, :status => :forbidden
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
if trace.public? or (@user and @user == trace.user)
send_file(trace.large_picture_name, :filename => "#{trace.id}.gif", :type => 'image/gif', :disposition => 'inline')
else
- render :nothing, :status => :forbidden
+ render :nothing => true, :status => :forbidden
end
else
render :nothing => true, :status => :not_found
if trace.public? or (@user and @user == trace.user)
send_file(trace.icon_picture_name, :filename => "#{trace.id}_icon.gif", :type => 'image/gif', :disposition => 'inline')
else
- render :nothing, :status => :forbidden
+ render :nothing => true, :status => :forbidden
end
else
render :nothing => true, :status => :not_found
else
FileUtils.rm_f(filename)
end
+
+ # Finally save whether the user marked the trace as being public
+ if @trace.public?
+ if @user.trace_public_default.nil?
+ @user.preferences.create(:k => "gps.trace.public", :v => "default")
+ end
+ else
+ pref = @user.trace_public_default
+ pref.destroy unless pref.nil?
+ end
+
end
end