end
end
+ def require_oauth
+ @oauth = @user.access_token(OAUTH_KEY) if @user and defined? OAUTH_KEY
+ end
+
##
# requires the user to be logged in by the token or HTTP methods, or have an
# OAuth token with the right capability. this method is a bit of a pain to call
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