Sha256: 21fa644086bc7db821d7046f77da0f01723d2ae9e4fc15bea70ebebe6f3da947
Contents?: true
Size: 1.32 KB
Versions: 4
Compression:
Stored size: 1.32 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) if ex.is_a?(RestClient::Unauthorized) self.clear return UnauthorizedError.new(_("Invalid username or password.")) end end def status unless @user.nil? || @password.nil? _("Using configured credentials for user '%s'.") % @user else _("Credentials are not configured.") end end def user(ask=nil) @user ||= ask && get_user end def set_credentials(user, password) @user = user @password = password end def clear set_credentials(nil, nil) end private def get_user @user ||= ask_user(_("[Foreman] Username:%s") % " ") end def get_password @password ||= ask_user(_("[Foreman] Password for %{user}:%{wsp}") % {:user => @user, :wsp => " "}, 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
4 entries across 4 versions & 1 rubygems