X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/97aefa23d0606edaee71d04cf6c1a2006689b1fa..80c6c685bcf097754e872ba61444fc4bb93f2515:/app/controllers/application.rb diff --git a/app/controllers/application.rb b/app/controllers/application.rb index 918e4b617..615022656 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -2,13 +2,13 @@ # Likewise, all the methods added will be available for all controllers. class ApplicationController < ActionController::Base - if OSM_STATUS == :database_offline + if OSM_STATUS == :database_readonly or OSM_STATUS == :database_offline session :off end def authorize_web if session[:user] - @user = User.find(session[:user]) + @user = User.find(session[:user], :conditions => "visible = 1") elsif session[:token] @user = User.authenticate(:token => session[:token]) session[:user] = @user.id @@ -43,13 +43,20 @@ class ApplicationController < ActionController::Base end end - def check_database_availability(need_api = false) + def check_database_readable(need_api = false) if OSM_STATUS == :database_offline or (need_api and OSM_STATUS == :api_offline) redirect_to :controller => 'site', :action => 'offline' end end - def check_read_availability + def check_database_writable(need_api = false) + if OSM_STATUS == :database_offline or OSM_STATUS == :database_readonly or + (need_api and (OSM_STATUS == :api_offline or OSM_STATUS == :api_readonly)) + redirect_to :controller => 'site', :action => 'offline' + end + end + + def check_api_readable if OSM_STATUS == :database_offline or OSM_STATUS == :api_offline response.headers['Error'] = "Database offline for maintenance" render :nothing => true, :status => :service_unavailable @@ -57,8 +64,9 @@ class ApplicationController < ActionController::Base end end - def check_write_availability - if OSM_STATUS == :database_offline or OSM_STATUS == :api_offline or OSM_STATUS == :api_readonly + def check_api_writable + if OSM_STATUS == :database_offline or OSM_STATUS == :database_readonly or + OSM_STATUS == :api_offline or OSM_STATUS == :api_readonly response.headers['Error'] = "Database offline for maintenance" render :nothing => true, :status => :service_unavailable return false