Class: EtcGroup
Instance Attribute Summary collapse
Instance Method Summary
collapse
#parse_comment_line, #parse_passwd, #parse_passwd_line
Methods included from Converter
#convert_to_i
Constructor Details
#initialize(path = nil) ⇒ EtcGroup
Returns a new instance of EtcGroup.
34
35
36
37
38
39
40
41
|
# File 'lib/resources/etc_group.rb', line 34
def initialize(path = nil)
@path = path || '/etc/group'
@entries = parse_group(@path)
return skip_resource 'The `etc_group` resource is not supported on your OS.' \
unless %w{ubuntu debian redhat fedora arch darwin freebsd}.include?(inspec.os[:family])
end
|
Instance Attribute Details
#entries ⇒ Object
Returns the value of attribute entries.
33
34
35
|
# File 'lib/resources/etc_group.rb', line 33
def entries
@entries
end
|
#gid ⇒ Object
Returns the value of attribute gid.
33
34
35
|
# File 'lib/resources/etc_group.rb', line 33
def gid
@gid
end
|
Instance Method Details
#gids(filter = nil) ⇒ Object
48
49
50
51
|
# File 'lib/resources/etc_group.rb', line 48
def gids(filter = nil)
entries = filter || @entries
entries.map { |x| x['gid'] } if !entries.nil?
end
|
#groups(filter = nil) ⇒ Object
43
44
45
46
|
# File 'lib/resources/etc_group.rb', line 43
def groups(filter = nil)
entries = filter || @entries
entries.map { |x| x['name'] } if !entries.nil?
end
|
#to_s ⇒ Object
86
87
88
|
# File 'lib/resources/etc_group.rb', line 86
def to_s
'/etc/group'
end
|
#users(filter = nil) ⇒ Object
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/resources/etc_group.rb', line 53
def users(filter = nil)
entries = filter || @entries
return nil if entries.nil?
res = entries.map { |x|
x['members'].split(',') if !x.nil? && !x['members'].nil?
}.flatten
res.reject { |x| x.nil? || x.empty? }
end
|
#where(conditions = {}) ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/resources/etc_group.rb', line 64
def where(conditions = {})
return if conditions.empty?
fields = {
name: 'name',
group_name: 'name',
password: 'password',
gid: 'gid',
group_id: 'gid',
users: 'members',
members: 'members',
}
res = entries
conditions.each do |k, v|
idx = fields[k.to_sym]
next if idx.nil?
res = res.select { |x| x[idx] == v.to_s }
end
EtcGroupView.new(self, res)
end
|