]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application_controller.rb
Rework the default denied access handler to give different responses to tokens, logge...
[rails.git] / app / controllers / application_controller.rb
index 2c5fbe51d0f95315c34cfd3c97e3911d5e6b67c0..690bdf5ca5140dad6448e86af7e6d02732ce7c35 100644 (file)
@@ -1,6 +1,5 @@
 class ApplicationController < ActionController::Base
   include SessionPersistence
-  # check_authorization
 
   protect_from_forgery :with => :exception
 
@@ -470,19 +469,24 @@ class ApplicationController < ActionController::Base
   end
 
   def current_ability
-    Ability.new(current_user).merge(granted_capabily)
+    Ability.new(current_user).merge(granted_capability)
   end
 
-  def granted_capabily
+  def granted_capability
     Capability.new(current_user, current_token)
   end
 
   def deny_access(_exception)
-    if current_user
+    if current_token
       set_locale
       report_error t("oauth.permissions.missing"), :forbidden
+    elsif current_user
+      set_locale
+      report_error t("application.permission_denied"), :forbidden
+    elsif request.get?
+      redirect_to :controller => "users", :action => "login", :referer => request.fullpath
     else
-      require_user
+      head :forbidden
     end
   end