def require_allow_write_gpx
require_capability(:allow_write_gpx)
end
+ def require_allow_write_notes
+ require_capability(:allow_write_notes)
+ end
##
# require that the user is a moderator, or fill out a helpful error message
end
def check_api_readable
- if STATUS == :database_offline or STATUS == :api_offline
+ if api_status == :offline
report_error "Database offline for maintenance", :service_unavailable
return false
end
end
def check_api_writable
- if STATUS == :database_offline or STATUS == :database_readonly or
- STATUS == :api_offline or STATUS == :api_readonly
+ unless api_status == :online
report_error "Database offline for maintenance", :service_unavailable
return false
end
end
+ def database_status
+ if STATUS == :database_offline
+ :offline
+ elsif STATUS == :database_readonly
+ :readonly
+ else
+ :online
+ end
+ end
+
+ def api_status
+ status = database_status
+ if status == :online
+ if STATUS == :api_offline
+ status = :offline
+ elsif STATUS == :api_readonly
+ status = :readonly
+ end
+ end
+ return status
+ end
+
+ def gpx_status
+ status = database_status
+ if status == :online
+ status = :offline if STATUS == :gpx_offline
+ end
+ return status
+ end
+
def require_public_data
unless @user.data_public?
report_error "You must make your edits public to upload new data", :forbidden
render :text => result.to_s, :content_type => "text/xml"
else
- render :text => message, :status => status
+ render :text => message, :status => status, :content_type => "text/plain"
end
end