Class: Inspec::Resources::Shadow
- Inherits:
-
Object
- Object
- Inspec::Resources::Shadow
- Includes:
- FileReader
- Defined in:
- lib/inspec/resources/shadow.rb
Instance Attribute Summary collapse
-
#params ⇒ Object
readonly
Returns the value of attribute params.
Instance Method Summary collapse
- #expiry_date(query = nil) ⇒ Object
- #filter(query = {}) ⇒ Object
-
#initialize(path = "/etc/shadow", opts = {}) ⇒ Shadow
constructor
A new instance of Shadow.
- #last_change(query = nil) ⇒ Object
- #lines ⇒ Object
- #password(query = nil) ⇒ Object
- #to_s ⇒ Object
-
#user(query = nil) ⇒ Object
Next 4 are deprecated methods.
Methods included from FileReader
Constructor Details
#initialize(path = "/etc/shadow", opts = {}) ⇒ Shadow
Returns a new instance of Shadow.
38 39 40 41 42 |
# File 'lib/inspec/resources/shadow.rb', line 38 def initialize(path = "/etc/shadow", opts = {}) @opts = opts @path = path || "/etc/shadow" @filters = @opts[:filters] || "" end |
Instance Attribute Details
#params ⇒ Object (readonly)
Returns the value of attribute params.
36 37 38 |
# File 'lib/inspec/resources/shadow.rb', line 36 def params @params end |
Instance Method Details
#expiry_date(query = nil) ⇒ Object
102 103 104 105 |
# File 'lib/inspec/resources/shadow.rb', line 102 def expiry_date(query = nil) Inspec.deprecate(:properties_shadow, "The shadow `expiry_date` property is deprecated. Please use `expiry_dates` instead.") query.nil? ? where.expiry_dates : where("expiry_date" => query) end |
#filter(query = {}) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/inspec/resources/shadow.rb', line 64 def filter(query = {}) return self if query.nil? || query.empty? res = set_params filters = "" query.each do |attr, condition| condition = condition.to_s if condition.is_a? Integer filters += " #{attr} = #{condition.inspect}" res = res.find_all do |line| case line[attr.to_s] when condition true else false end end end content = res.map { |x| x.values.join(":") }.join("\n") Shadow.new(@path, content: content, filters: @filters + filters) end |
#last_change(query = nil) ⇒ Object
97 98 99 100 |
# File 'lib/inspec/resources/shadow.rb', line 97 def last_change(query = nil) Inspec.deprecate(:properties_shadow, "The shadow `last_change` property is deprecated. Please use `last_changes` instead.") query.nil? ? where.last_changes : where("last_change" => query) end |
#lines ⇒ Object
107 108 109 110 |
# File 'lib/inspec/resources/shadow.rb', line 107 def lines Inspec.deprecate(:properties_shadow, "The shadow `lines` property is deprecated.") shadow_content.to_s.split("\n") end |
#password(query = nil) ⇒ Object
92 93 94 95 |
# File 'lib/inspec/resources/shadow.rb', line 92 def password(query = nil) Inspec.deprecate(:properties_shadow, "The shadow `password` property is deprecated. Please use `passwords` instead.") query.nil? ? where.passwords : where("password" => query) end |
#to_s ⇒ Object
112 113 114 115 |
# File 'lib/inspec/resources/shadow.rb', line 112 def to_s f = @filters.empty? ? "" : " with" + @filters "#{@path}#{f}" end |
#user(query = nil) ⇒ Object
Next 4 are deprecated methods. We define them here so we can emit a deprecation message. They are also defined on the Table, above.
87 88 89 90 |
# File 'lib/inspec/resources/shadow.rb', line 87 def user(query = nil) Inspec.deprecate(:properties_shadow, "The shadow `user` property is deprecated. Please use `users` instead.") query.nil? ? where.users : where("user" => query) end |