module MogueraAuthentication::Authable

Public Instance Methods

current_user() click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 13
def current_user
  @current_user
end
current_user=(user) click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 9
def current_user=(user)
  @current_user = user
end
require_sign_in!() click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 21
def require_sign_in!
  validate_user!
  sign_in!(user_class.find_by(find_key => env['moguera.auth'].try(:access_key)))
end
sign_in!(user) click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 26
def sign_in!(user)
  self.current_user = user
end
sign_out!() click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 30
def sign_out!
  self.current_user = nil
end
user_signed_in?() click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 17
def user_signed_in?
  !!current_user
end

Private Instance Methods

find_key() click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 46
def find_key
  Rails.application.config.moguera_authentication.find_key
end
user_class() click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 42
def user_class
  Rails.application.config.moguera_authentication.user_class
end
validate_user!() click to toggle source
# File lib/rails/moguera_authentication/authable.rb, line 50
def validate_user!
  if e = env['moguera.error']
    logger.error "ERROR: #{e.inspect}"
    case e
      when Moguera::Authentication::ParameterInvalid,
           Moguera::Authentication::RequestTokenRequired
        status = 400
        response = {
            code: e.class.to_s,
            message: "#{status} Bad Request: #{e.message}",
            status: status
        }
      when Moguera::Authentication::AuthenticationError
        status = 401
        response = {
            code: e.class.to_s,
            message: "#{status} Unauthorized: #{e.message}",
            status: status
        }
        require 'pp'
        PP.pp ({
              request_token: e.request_token,
              server_request_token: e.server_request.token,
              request_path: e.server_request.request_path,
              request_method: e.server_request.request_method,
              http_date: e.server_request.http_date,
              content_type: e.server_request.content_type
          }), STDERR
      when Moguera::Authentication::UserNotFound
        status = 404
        response = {
            code: e.class.to_s,
            message: "#{status} Not Found: #{e.message}",
            status: status
        }
      else
        status = 500
        response = {
            code: e.class.to_s,
            message: "#{status} Internal Server Error: #{e.message}",
            status: status
        }
    end
    render(json: response, status: status)
  end
end