X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/261862a8dd3e5f84773d922b19a8c60dc3e1b3b0..91dac23254c3674bee23cfd33fbedc2c4380924b:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9c6ea3b33..bd4a62948 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -9,11 +9,7 @@ class ApplicationController < ActionController::Base if session[:user] @user = User.where(:id => session[:user]).where("status IN ('active', 'confirmed', 'suspended')").first - if @user.display_name != cookies["_osm_username"] - logger.info "Session user '#{@user.display_name}' does not match cookie user '#{cookies['_osm_username']}'" - reset_session - @user = nil - elsif @user.status == "suspended" + if @user.status == "suspended" session.delete(:user) session_expires_automatically @@ -77,7 +73,7 @@ class ApplicationController < ActionController::Base if request.cookies["_osm_session"].to_s == "" if params[:cookie_test].nil? session[:cookie_test] = true - redirect_to params.merge(:cookie_test => "true") + redirect_to Hash[params].merge(:cookie_test => "true") return false else flash.now[:warning] = t 'application.require_cookies.cookies_needed' @@ -196,14 +192,22 @@ class ApplicationController < ActionController::Base def check_database_readable(need_api = false) if STATUS == :database_offline or (need_api and STATUS == :api_offline) - redirect_to :controller => 'site', :action => 'offline' + if request.xhr? + report_error "Database offline for maintenance", :service_unavailable + else + redirect_to :controller => 'site', :action => 'offline' + end end end def check_database_writable(need_api = false) if STATUS == :database_offline or STATUS == :database_readonly or (need_api and (STATUS == :api_offline or STATUS == :api_readonly)) - redirect_to :controller => 'site', :action => 'offline' + if request.xhr? + report_error "Database offline for maintenance", :service_unavailable + else + redirect_to :controller => 'site', :action => 'offline' + end end end @@ -423,8 +427,7 @@ class ApplicationController < ActionController::Base end def map_layout - response.headers['Vary'] = 'X-Requested-With' - request.xhr? ? false : 'map' + request.xhr? ? 'xhr' : 'map' end def preferred_editor @@ -436,7 +439,7 @@ class ApplicationController < ActionController::Base DEFAULT_EDITOR end - if request.env['HTTP_USER_AGENT'] =~ /MSIE/ and editor == 'id' + if request.env['HTTP_USER_AGENT'] =~ /MSIE|Trident/ and editor == 'id' editor = 'potlatch2' end