]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application_controller.rb
Preserve protocol in short links
[rails.git] / app / controllers / application_controller.rb
index a52c006faed8bde165c4d5df292e7be510c1de5c..15b98e0a829beba89d1f066c9a35c5152b73741b 100644 (file)
@@ -154,6 +154,7 @@ class ApplicationController < ActionController::Base
       # check if the user has been banned
       if @user.blocks.active.exists?
         # NOTE: need slightly more helpful message than this.
+        set_locale
         report_error t("application.setup_user_auth.blocked"), :forbidden
       end
 
@@ -360,10 +361,6 @@ class ApplicationController < ActionController::Base
     ex = ex.original_exception
 
     if ex.is_a?(ActiveRecord::StatementInvalid) && ex.message =~ /execution expired/
-      ex = Timeout::Error.new
-    end
-
-    if ex.is_a?(Timeout::Error)
       render :action => "timeout"
     else
       raise
@@ -423,6 +420,16 @@ class ApplicationController < ActionController::Base
 
   helper_method :preferred_editor
 
+  def update_totp
+    if defined?(TOTP_KEY)
+      cookies["_osm_totp_token"] = {
+        :value => ROTP::TOTP.new(TOTP_KEY, :interval => 3600).now,
+        :domain => "openstreetmap.org",
+        :expires => 1.hour.from_now
+      }
+    end
+  end
+
   private
 
   # extract authorisation credentials from headers, returns user = nil if none
@@ -452,6 +459,5 @@ class ApplicationController < ActionController::Base
   end
 
   # override to stop oauth plugin sending errors
-  def invalid_oauth_response
-  end
+  def invalid_oauth_response; end
 end