X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/e3ed9988ce5f57ed303326072f7f583b641e8774..94d19ae567dc7723129ee2f00576023aaee18fc7:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 0e77a398d..c5545c068 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -112,21 +112,8 @@ class ApplicationController < ActionController::Base end end - def authorize(realm = "Web Password", errormessage = "Couldn't authenticate you") - # make the current_user object from any auth sources we have - setup_user_auth - - # handle authenticate pass/fail - unless current_user - # no auth, the user does not exist or the password was wrong - response.headers["WWW-Authenticate"] = "Basic realm=\"#{realm}\"" - render :plain => errormessage, :status => :unauthorized - return false - end - end - def check_database_readable(need_api = false) - if STATUS == :database_offline || (need_api && STATUS == :api_offline) + if Settings.status == "database_offline" || (need_api && Settings.status == "api_offline") if request.xhr? report_error "Database offline for maintenance", :service_unavailable else @@ -136,8 +123,8 @@ class ApplicationController < ActionController::Base end def check_database_writable(need_api = false) - if STATUS == :database_offline || STATUS == :database_readonly || - (need_api && (STATUS == :api_offline || STATUS == :api_readonly)) + if Settings.status == "database_offline" || Settings.status == "database_readonly" || + (need_api && (Settings.status == "api_offline" || Settings.status == "api_readonly")) if request.xhr? report_error "Database offline for maintenance", :service_unavailable else @@ -161,9 +148,9 @@ class ApplicationController < ActionController::Base end def database_status - if STATUS == :database_offline + if Settings.status == "database_offline" :offline - elsif STATUS == :database_readonly + elsif Settings.status == "database_readonly" :readonly else :online @@ -173,9 +160,9 @@ class ApplicationController < ActionController::Base def api_status status = database_status if status == :online - if STATUS == :api_offline + if Settings.status == "api_offline" status = :offline - elsif STATUS == :api_readonly + elsif Settings.status == "api_readonly" status = :readonly end end @@ -184,7 +171,7 @@ class ApplicationController < ActionController::Base def gpx_status status = database_status - status = :offline if status == :online && STATUS == :gpx_offline + status = :offline if status == :online && Settings.status == "gpx_offline" status end @@ -338,9 +325,9 @@ class ApplicationController < ActionController::Base :style_src => %w['unsafe-inline'] ) - if STATUS == :database_offline || STATUS == :api_offline + if Settings.status == "database_offline" || Settings.status == "api_offline" flash.now[:warning] = t("layouts.osm_offline") - elsif STATUS == :database_readonly || STATUS == :api_readonly + elsif Settings.status == "database_readonly" || Settings.status == "api_readonly" flash.now[:warning] = t("layouts.osm_read_only") end @@ -395,15 +382,7 @@ class ApplicationController < ActionController::Base end end - def deny_access(exception) - if @api_deny_access_handling - api_deny_access(exception) - else - web_deny_access(exception) - end - end - - def web_deny_access(_exception) + def deny_access(_exception) if current_token set_locale report_error t("oauth.permissions.missing"), :forbidden @@ -423,26 +402,6 @@ class ApplicationController < ActionController::Base end end - def api_deny_access(_exception) - if current_token - set_locale - report_error t("oauth.permissions.missing"), :forbidden - elsif current_user - head :forbidden - else - realm = "Web Password" - errormessage = "Couldn't authenticate you" - response.headers["WWW-Authenticate"] = "Basic realm=\"#{realm}\"" - render :plain => errormessage, :status => :unauthorized - end - end - - attr_accessor :api_access_handling - - def api_deny_access_handler - @api_deny_access_handling = true - end - private # extract authorisation credentials from headers, returns user = nil if none