]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application_controller.rb
Add :warning and :error flash messages which can be styled separately to
[rails.git] / app / controllers / application_controller.rb
index c43271b93a81faf5b3426a75097ac5fc1053f0e5..66ab92a5cf379fa374d986a99261c72f170ee5d1 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
+        flash.now[:warning] = 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")