Sha256: f300979c1a4db2608c8e3c53f1d0353996ebe7fe6c36346d35f265d2f84e59a4

Contents?: true

Size: 1.97 KB

Versions: 1

Compression:

Stored size: 1.97 KB

Contents

module VMC::Cli::Command

  class User < Base

    def info
      info = client_info
      username = info[:user] || 'N/A'
      return display JSON.pretty_generate([username]) if @options[:json]
      display "\n[#{username}]"
    end

    def login(email=nil)
      email    = @options[:email] unless email
      password = @options[:password]
      tries ||= 0
<<<<<<< HEAD
      email = ask("Email: ") unless no_prompt || email
      password = ask("Password: ") {|q| q.echo = '*'} unless no_prompt || password
=======

      unless no_prompt
        email ||= ask("Email")
        password ||= ask("Password", :echo => "*")
      end

>>>>>>> local-staging/master
      err "Need a valid email" unless email
      err "Need a password" unless password
      login_and_save_token(email, password)
      say "Successfully logged into [#{target_url}]".green
    rescue VMC::Client::TargetError
      display "Problem with login, invalid account or password.".red
      retry if (tries += 1) < 3 && prompt_ok && !@options[:password]
      exit 1
    rescue => e
      display "Problem with login, #{e}, try again or register for an account.".red
      exit 1
    end

    def logout
      VMC::Cli::Config.remove_token_file
      say "Successfully logged out of [#{target_url}]".green
    end

    def change_password(password=nil)
      info = client_info
      email = info[:user]
      err "Need to be logged in to change password." unless email
      say "Changing password for '#{email}'\n"
      unless no_prompt
        password = ask "New Password", :echo => "*"
        password2 = ask "Verify Password", :echo => "*"
        err "Passwords did not match, try again" if password != password2
      end
      err "Password required" unless password
      client.change_password(password)
      say "\nSuccessfully changed password".green
    end

    private

    def login_and_save_token(email, password)
      token = client.login(email, password)
      VMC::Cli::Config.store_token(token)
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vmc-0.3.13.beta.3 lib/cli/commands/user.rb