class Wdmc::User

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/wdmc/user.rb, line 7
def initialize(*args)
  @wdmc = Wdmc::Client.new
  super
end

Public Instance Methods

create( name ) click to toggle source
# File lib/wdmc/user.rb, line 44
def create( name )
  password = Base64.strict_encode64(options[:password]) if options[:password]
  user_exists = @wdmc.user_exists?( name )
  abort "\nUser does not exist: ".color(:yellow) + "#{name}".color(:cyan) if user_exists.include?( name )
  begin
    groups = ['cloudholders']
    groups.push options[:group_names] if options[:group_names]
    data = {
      :email => options[:email],
      :username => name,
      :password => password,
      :fullname => options[:fullname],
      :is_admin => options[:admin],
      :group_names => groups.join(','),
      :first_name => options[:first_name],
      :last_name => options[:last_name]
    }
    puts "Create user:\s".color(:whitesmoke) + "OK".color(:green) if @wdmc.add_user( data )
  rescue RestClient::ExceptionWithResponse => e
    puts eval(e.response)[:users][:error_message].color(:orange)
  end
end
delete( name ) click to toggle source
# File lib/wdmc/user.rb, line 95
def delete( name )
  user_exists = @wdmc.user_exists?( name )
  abort "\nUser does not exist: ".color(:yellow) + "#{name}".color(:cyan) unless user_exists.include?( name )
  unless options['force']
    puts "\nAre you sure you want to delete this user?\s".color(:orange) + "#{name}".color(:whitesmoke)
    return unless yes?("DELETE? (yes/no):")
  end
  puts "Delete user:\s".color(:whitesmoke) + "OK".color(:green) if @wdmc.delete_user( name )
end
list() click to toggle source
# File lib/wdmc/user.rb, line 13
def list
  users = @wdmc.all_users
  puts "Users".upcase.color(:magenta)
  users.each do |user|
    puts "\s- #{user[:username]}"
  end
end
show( name ) click to toggle source
# File lib/wdmc/user.rb, line 22
def show( name )
  users = @wdmc.find_user( name )
  user_exists = @wdmc.user_exists?( name )
  abort "\nUser does not exist: ".color(:yellow) + "#{name}".color(:cyan) unless user_exists.include?( name )
  users.each do |user|
    puts "Username:\s".upcase.color(:magenta) + user[:username]
    puts "\sUser ID\t\t: ".color(:whitesmoke) + "#{user[:user_id]}"
    puts "\sFullname\t\t: ".color(:whitesmoke) + "#{user[:fullname]}" unless user[:fullname].empty?
    puts "\sAdmin\t\t\t: ".color(:whitesmoke) + "#{user[:is_admin]}"
    puts "\sPassword set\t\t: ".color(:whitesmoke) + "#{user[:is_password]}".color(:green) if user[:is_password] == 'true'
    puts "\sPassword set\t\t: ".color(:whitesmoke) + "#{user[:is_password]}".color(:orange) if user[:is_password] == 'false'
  end
end
update( name ) click to toggle source
# File lib/wdmc/user.rb, line 74
def update( name )
  password = Base64.strict_encode64(options[:password]) if options[:password]
  user_exists = @wdmc.user_exists?( name )
  abort "\nUser does not exist: ".color(:yellow) + "#{name}".color(:cyan) unless user_exists.include?( name )
  begin
    data = {
      :username => options[:new_username] || name,
      :password =>  password,
      :fullname => options[:fullname],
      :is_admin => options[:admin],
      :first_name => options[:first_name],
      :last_name => options[:last_name]
    }
    puts "Update user:\s".color(:whitesmoke) + "OK".color(:green) if @wdmc.update_user( name, data )
  rescue RestClient::ExceptionWithResponse => e
    puts eval(e.response)[:users] #[:error_message].color(:orange)
  end
end