Sha256: 5ea554baf67cc06af2f47c903f8899c0a8cb0bb3f3052c307260b3c009d5f9ca

Contents?: true

Size: 778 Bytes

Versions: 7

Compression:

Stored size: 778 Bytes

Contents

require 'cabal/api/user'

module Cabal
  module API
    module Common
      module Authenticated
        def self.included(base)
          base.class_eval do
            helpers do
              def current_user
                authorization = headers['Authorization'].to_s
                access_key, signature = authorization.split(':')
                user = Cabal::API::User.find(access_key: access_key).first
                if user && user.authenticated_with?(signature)
                  user
                else
                  nil
                end
              end

              def authenticate!
                error!({message: 'Unauthorized.'}, 401) unless current_user
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
cabal-api-0.2.2 lib/cabal/api/common/authenticated.rb
cabal-api-0.2.1 lib/cabal/api/common/authenticated.rb
cabal-api-0.2.0 lib/cabal/api/common/authenticated.rb
cabal-api-0.1.1 lib/cabal/api/common/authenticated.rb
cabal-api-0.1.0 lib/cabal/api/common/authenticated.rb
cabal-api-0.0.4 lib/cabal/api/common/authenticated.rb
cabal-api-0.0.3 lib/cabal/api/common/authenticated.rb