Class: Inspec::Resources::UserInfo

Inherits:
Object
  • Object
show all
Includes:
Converter
Defined in:
lib/inspec/resources/users.rb

Overview

This is an abstract class that every user provoider has to implement. A user provider implements a system abstracts and helps the InSpec resource hand-over system specific behavior to those providers

Direct Known Subclasses

UnixUser, WindowsUser

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Converter

#convert_to_i

Constructor Details

#initialize(inspec) ⇒ UserInfo

Returns a new instance of UserInfo.



324
325
326
# File 'lib/inspec/resources/users.rb', line 324

def initialize(inspec)
  @inspec = inspec
end

Instance Attribute Details

#inspecObject (readonly)

Returns the value of attribute inspec.



323
324
325
# File 'lib/inspec/resources/users.rb', line 323

def inspec
  @inspec
end

Instance Method Details

#collect_user_detailsObject

returns the full information list for a user



374
375
376
377
378
# File 'lib/inspec/resources/users.rb', line 374

def collect_user_details
  list_users.map do |username|
    user_details(username.chomp)
  end
end

#credentials(_username) ⇒ Object

returns a hash with meta-data about user credentials

mindays: 1,
maxdays: 1,
warndays: 1,

this method is optional and may not be implemented by each provider



352
353
354
# File 'lib/inspec/resources/users.rb', line 352

def credentials(_username)
  nil
end

#identity(_username) ⇒ Object

returns a hash with user-specific values:

uid: '',
user: '',
gid: '',
group: '',
groups: '',



336
337
338
# File 'lib/inspec/resources/users.rb', line 336

def identity(_username)
  raise "user provider must implement the `identity` method"
end

#list_usersObject

returns an array with users



357
358
359
# File 'lib/inspec/resources/users.rb', line 357

def list_users
  raise "user provider must implement the `list_users` method"
end

#meta_info(_username) ⇒ Object

returns optional information about a user, eg shell



341
342
343
# File 'lib/inspec/resources/users.rb', line 341

def meta_info(_username)
  nil
end

#user_details(username) ⇒ Object

retuns all aspects of the user as one hash



362
363
364
365
366
367
368
369
370
371
# File 'lib/inspec/resources/users.rb', line 362

def user_details(username)
  item = {}
  id = identity(username)
  item.merge!(id) unless id.nil?
  meta = meta_info(username)
  item.merge!(meta) unless meta.nil?
  cred = credentials(username)
  item.merge!(cred) unless cred.nil?
  item
end