Sha256: ea733f9432cbd28be578424d0752504ef21e6ae609861c593a5a17e34f282e72

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require 'highline/import'

module HammerCLIForeman
  module Api
    class InteractiveBasicAuth < ApipieBindings::Authenticators::BasicAuth
      def authenticate(request, args)
        if HammerCLI.interactive?
          get_user
          get_password
        end
        super
      end

      def error(ex)
        ex.message = _("Invalid username or password") if ex.is_a?(RestClient::Unauthorized)
      end

      def status
        unless @user.nil? || @password.nil?
          _("You are logged in as '%s'") % @user
        else
          _("You are currently not logged in")
        end
      end

      def user
        @user
      end

      private

      def get_user
        @user ||= ask_user(_("[Foreman] Username: "))
      end

      def get_password
        @password ||= ask_user(_("[Foreman] Password for %s: ") % @user, true)
      end

      def ask_user(prompt, silent=false)
        if silent
          ask(prompt) {|q| q.echo = false}
        else
          ask(prompt)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hammer_cli_foreman-0.10.0 lib/hammer_cli_foreman/api/interactive_basic_auth.rb