Disentangle the api abilities from the web abilities
[rails.git] / app / controllers / api_controller.rb
index 579af27cf4d8fcac9683cab09feaf640d7df5f64..df7cfe93be97d9ffa704db88d759be75523ffc32 100644 (file)
@@ -16,6 +16,15 @@ class ApiController < ApplicationController
     end
   end
 
+  def current_ability
+    # Use capabilities from the oauth token if it exists and is a valid access token
+    if Authenticator.new(self, [:token]).allow?
+      ApiAbility.new(nil).merge(ApiCapability.new(current_token))
+    else
+      ApiAbility.new(current_user)
+    end
+  end
+
   def deny_access(_exception)
     if current_token
       set_locale