Class: Inspec::Resources::User

Inherits:
Object
  • Object
show all
Defined in:
lib/resources/user.rb

Overview

rubocop:disable Metrics/ClassLength

Instance Method Summary collapse

Constructor Details

#initialize(user) ⇒ User

Returns a new instance of User.



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/resources/user.rb', line 52

def initialize(user)
  @user = user

  # select package manager
  @user_provider = nil
  os = inspec.os
  if os.linux?
    @user_provider = LinuxUser.new(inspec)
  elsif os.windows?
    @user_provider = WindowsUser.new(inspec)
  elsif ['darwin'].include?(os[:family])
    @user_provider = DarwinUser.new(inspec)
  elsif ['freebsd'].include?(os[:family])
    @user_provider = FreeBSDUser.new(inspec)
  elsif ['aix'].include?(os[:family])
    @user_provider = AixUser.new(inspec)
  elsif os.solaris?
    @user_provider = SolarisUser.new(inspec)
  elsif ['hpux'].include?(os[:family])
    @user_provider = HpuxUser.new(inspec)
  else
    return skip_resource 'The `user` resource is not supported on your OS yet.'
  end
end

Instance Method Details

#deprecated(name, alternative = nil) ⇒ Object



154
155
156
# File 'lib/resources/user.rb', line 154

def deprecated(name, alternative = nil)
  warn "[DEPRECATION] #{name} is deprecated. #{alternative}"
end

#exists?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/resources/user.rb', line 77

def exists?
  !identity.nil? && !identity[:user].nil?
end

#gidObject



85
86
87
# File 'lib/resources/user.rb', line 85

def gid
  identity[:gid] unless identity.nil?
end

#groupObject



89
90
91
# File 'lib/resources/user.rb', line 89

def group
  identity[:group] unless identity.nil?
end

#groupsObject



93
94
95
# File 'lib/resources/user.rb', line 93

def groups
  identity[:groups] unless identity.nil?
end

#has_authorized_key?(_compare_key) ⇒ Boolean

Returns:

  • (Boolean)


149
150
151
152
# File 'lib/resources/user.rb', line 149

def has_authorized_key?(_compare_key)
  deprecated('has_authorized_key?')
  fail NotImplementedError
end

#has_home_directory?(compare_home) ⇒ Boolean

Returns:

  • (Boolean)


139
140
141
142
# File 'lib/resources/user.rb', line 139

def has_home_directory?(compare_home)
  deprecated('has_home_directory?', "Please use: its('home')")
  home == compare_home
end

#has_login_shell?(compare_shell) ⇒ Boolean

Returns:

  • (Boolean)


144
145
146
147
# File 'lib/resources/user.rb', line 144

def (compare_shell)
  deprecated('has_login_shell?', "Please use: its('shell')")
  shell == compare_shell
end

#has_uid?(compare_uid) ⇒ Boolean

implements rspec has matcher, to be compatible with serverspec @see: github.com/rspec/rspec-expectations/blob/master/lib/rspec/matchers/built_in/has.rb

Returns:

  • (Boolean)


134
135
136
137
# File 'lib/resources/user.rb', line 134

def has_uid?(compare_uid)
  deprecated('has_uid?')
  uid == compare_uid
end

#homeObject



97
98
99
# File 'lib/resources/user.rb', line 97

def home
  meta_info[:home] unless meta_info.nil?
end

#identityObject



162
163
164
165
# File 'lib/resources/user.rb', line 162

def identity
  return @id_cache if defined?(@id_cache)
  @id_cache = @user_provider.identity(@user) if !@user_provider.nil?
end

#maxdaysObject

returns the maximum days between password changes



111
112
113
# File 'lib/resources/user.rb', line 111

def maxdays
  credentials[:maxdays] unless credentials.nil?
end

#maximum_days_between_password_changeObject

implement ‘maxdays’ method to be compatible with serverspec



127
128
129
130
# File 'lib/resources/user.rb', line 127

def maximum_days_between_password_change
  deprecated('maximum_days_between_password_change', "Please use: its('maxdays')")
  maxdays
end

#mindaysObject

returns the minimum days between password changes



106
107
108
# File 'lib/resources/user.rb', line 106

def mindays
  credentials[:mindays] unless credentials.nil?
end

#minimum_days_between_password_changeObject

implement ‘mindays’ method to be compatible with serverspec



121
122
123
124
# File 'lib/resources/user.rb', line 121

def minimum_days_between_password_change
  deprecated('minimum_days_between_password_change', "Please use: its('mindays')")
  mindays
end

#shellObject



101
102
103
# File 'lib/resources/user.rb', line 101

def shell
  meta_info[:shell] unless meta_info.nil?
end

#to_sObject



158
159
160
# File 'lib/resources/user.rb', line 158

def to_s
  "User #{@user}"
end

#uidObject



81
82
83
# File 'lib/resources/user.rb', line 81

def uid
  identity[:uid] unless identity.nil?
end

#warndaysObject

returns the days for password change warning



116
117
118
# File 'lib/resources/user.rb', line 116

def warndays
  credentials[:warndays] unless credentials.nil?
end