Put authentication on api

This commit is contained in:
benji 2015-09-09 14:08:40 +02:00
parent c3bf2b74cc
commit d948071e49
2 changed files with 11 additions and 3 deletions

View file

@ -1,12 +1,16 @@
class ApplicationController < ActionController::Base class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception. # Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead. # For APIs, you may want to use :null_session instead.
protect_from_forgery with: :null_session protect_from_forgery with: :exception
rescue_from CanCan::AccessDenied do |exception| rescue_from CanCan::AccessDenied do |exception|
redirect_to root_url, alert: exception.message redirect_to root_url, alert: exception.message
end end
def authenticate_user_or_client!
current_user || current_client || raise(Exception.new)
end
def current_client def current_client
@current_client ||= identify_client @current_client ||= identify_client
end end
@ -15,7 +19,7 @@ class ApplicationController < ActionController::Base
if current_user if current_user
@current_ability ||= Ability.new(current_user) @current_ability ||= Ability.new(current_user)
elsif current_client elsif current_client
@current_ability ||= ClientAbility.new(current_account) @current_ability ||= ClientAbility.new(current_client)
end end
end end
@ -25,5 +29,4 @@ class ApplicationController < ActionController::Base
key = request.headers["X-API-KEY"] key = request.headers["X-API-KEY"]
Client.find_by key: key if key Client.find_by key: key if key
end end
end end

View file

@ -1,4 +1,9 @@
class TransactionsController < ApplicationController class TransactionsController < ApplicationController
skip_before_filter :verify_authenticity_token, only: :create
before_action :authenticate_user!, except: :create
before_action :authenticate_user_or_client!, only: :create
def index def index
@transactions = Transaction.all @transactions = Transaction.all
end end