]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application_controller.rb
Merged 17256:18123 from trunk.
[rails.git] / app / controllers / application_controller.rb
index 6dbe9165ca2593b20f5fff3c7e6c46f7469016e6..bcaed456590748d1e86c45ba04962ffbc1af1af7 100644 (file)
@@ -39,6 +39,19 @@ class ApplicationController < ActionController::Base
     end
   end
 
+  ##
+  # require the user to have cookies enabled in their browser
+  def require_cookies
+    if request.cookies["_osm_session"].to_s == ""
+      if params[:cookie_test].nil?
+        redirect_to params.merge(:cookie_test => "true")
+        return false
+      else
+        @notice = t 'application.require_cookies.cookies_needed'
+      end
+    end
+  end
+
   # Utility methods to make the controller filter methods easier to read and write.
   def require_allow_read_prefs
     require_capability(:allow_read_prefs)
@@ -78,6 +91,12 @@ class ApplicationController < ActionController::Base
         @user = User.authenticate(:username => username, :password => passwd) # basic auth
       end
     end
+
+    # check if the user has been banned
+    unless @user.nil? or @user.active_blocks.empty?
+      # NOTE: need slightly more helpful message than this.
+      render :text => t('application.setup_user_auth.blocked'), :status => :forbidden
+    end
   end
 
   def authorize(realm='Web Password', errormessage="Couldn't authenticate you")