class HammerCLIForeman::Auth::LoginCommand

Public Instance Methods

execute() click to toggle source
# File lib/hammer_cli_foreman/auth.rb, line 12
def execute
  if !(HammerCLIForeman.foreman_api_connection.authenticator.is_a?(HammerCLIForeman::Api::SessionAuthenticatorWrapper))
    print_message(_("Can't perform login. Make sure sessions are enabled in hammer configuration file."))
    return HammerCLI::EX_USAGE
  end

  # Make sure we reflect also credentials set for the main hammer command
  # ( hammer -u test auth login )
  HammerCLIForeman.foreman_api_connection.authenticator.set_credentials(
    option_username || HammerCLI::Settings.get('_params', 'username'),
    option_password || HammerCLI::Settings.get('_params', 'password')
  )
  HammerCLIForeman.foreman_api_connection.authenticator.force_user_change
  HammerCLIForeman.foreman_api_connection.login

  print_message(_("Successfully logged in as '%s'.") % HammerCLIForeman.foreman_api_connection.authenticator.user)
  HammerCLI::EX_OK
end