module HammerCLIForeman::Api::BasicAuth

Public Instance Methods

authenticate(request, args) click to toggle source
Calls superclass method
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 4
def authenticate(request, args)
  if HammerCLI.interactive?
    get_user
    get_password
  end
  super
end
clear() click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 48
def clear
  set_credentials(nil, nil)
end
error(ex) click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 12
def error(ex)
  return unless ex.is_a?(RestClient::Unauthorized)

  clear
  default_message = _('Invalid username or password.')
  message = begin
    response_msg = JSON.parse(ex.response.body)['error']
    response_msg.is_a?(Hash) ? response_msg['message'] : response_msg
  rescue
  end
  return UnauthorizedError.new(default_message) unless message

  UnauthorizedError.new("#{message}\n#{default_message}")
end
password(ask = nil) click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 39
def password(ask = nil)
  @password ||= ask && get_password
end
set_credentials(user, password) click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 43
def set_credentials(user, password)
  @user = user
  @password = password
end
status() click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 27
def status
  unless @user.nil? || @password.nil?
    _("Using configured credentials for user '%s'.") % @user
  else
    _('Credentials are not configured.')
  end
end
user(ask = nil) click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 35
def user(ask = nil)
  @user ||= ask && get_user
end

Private Instance Methods

ask_user(prompt, silent = false) click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 62
def ask_user(prompt, silent = false)
  if silent
    HammerCLI.interactive_output.ask(prompt) { |q| q.echo = false }
  else
    HammerCLI.interactive_output.ask(prompt)
  end
end
get_password() click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 58
def get_password
  @password ||= ask_user(_("[Foreman] Password for %{user}:%{wsp}") % { user: @user, wsp: ' ' }, true)
end
get_user() click to toggle source
# File lib/hammer_cli_foreman/api/basic_auth.rb, line 54
def get_user
  @user ||= ask_user(_('[Foreman] Username:%s') % ' ')
end