summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/chef/resource/user.rb138
-rw-r--r--lib/chef/resource/user/linux_user.rb1
-rw-r--r--spec/unit/provider/user_spec.rb2
3 files changed, 14 insertions, 127 deletions
diff --git a/lib/chef/resource/user.rb b/lib/chef/resource/user.rb
index df52ebb083..ea8c7af5e7 100644
--- a/lib/chef/resource/user.rb
+++ b/lib/chef/resource/user.rb
@@ -23,137 +23,25 @@ class Chef
# Use the user resource to add users, update existing users, remove users, and to lock/unlock user passwords.
class User < Chef::Resource
resource_name :user_resource_abstract_base_class # this prevents magickal class name DSL wiring
- identity_attr :username
-
- state_attrs :uid, :gid, :home
default_action :create
allowed_actions :create, :remove, :modify, :manage, :lock, :unlock
- def initialize(name, run_context = nil)
- super
- @username = name
- @comment = nil
- @uid = nil
- @gid = nil
- @home = nil
- @shell = nil
- @password = nil
- @system = false
- @manage_home = false
- @force = false
- @non_unique = false
- @iterations = 27855
- @salt = nil
- end
-
- def username(arg = nil)
- set_or_return(
- :username,
- arg,
- kind_of: [ String ]
- )
- end
-
- def comment(arg = nil)
- set_or_return(
- :comment,
- arg,
- kind_of: [ String ]
- )
- end
-
- def uid(arg = Chef::NOT_PASSED)
- set_or_return(
- :uid,
- arg,
- kind_of: [ String, Integer, NilClass ],
- coerce: proc { |x| x || nil }
- )
- end
-
- def gid(arg = Chef::NOT_PASSED)
- set_or_return(
- :gid,
- arg,
- kind_of: [ String, Integer, NilClass ],
- coerce: proc { |x| x || nil }
- )
- end
+ property :username, String, name_property: true, identity: true
+ property :comment, String
+ property :uid, [ String, Integer, NilClass ]
+ property :gid, [ String, Integer, NilClass ]
+ property :home, String
+ property :shell, String
+ property :password, String
+ property :salt, String
+ property :system, [ TrueClass, FalseClass ], default: false
+ property :iterations, Integer, default: 27855
+ property :manage_home, [ TrueClass, FalseClass ], default: false, desired_state: false
+ property :force, [ TrueClass, FalseClass ], default: false, desired_state: false
+ property :non_unique, [ TrueClass, FalseClass ], default: false, desired_state: false
alias_method :group, :gid
-
- def home(arg = nil)
- set_or_return(
- :home,
- arg,
- kind_of: [ String ]
- )
- end
-
- def shell(arg = nil)
- set_or_return(
- :shell,
- arg,
- kind_of: [ String ]
- )
- end
-
- def password(arg = nil)
- set_or_return(
- :password,
- arg,
- kind_of: [ String ]
- )
- end
-
- def salt(arg = nil)
- set_or_return(
- :salt,
- arg,
- kind_of: [ String ]
- )
- end
-
- def iterations(arg = nil)
- set_or_return(
- :iterations,
- arg,
- kind_of: [ Integer ]
- )
- end
-
- def system(arg = nil)
- set_or_return(
- :system,
- arg,
- kind_of: [ TrueClass, FalseClass ]
- )
- end
-
- def manage_home(arg = nil)
- set_or_return(
- :manage_home,
- arg,
- kind_of: [ TrueClass, FalseClass ]
- )
- end
-
- def force(arg = nil)
- set_or_return(
- :force,
- arg,
- kind_of: [ TrueClass, FalseClass ]
- )
- end
-
- def non_unique(arg = nil)
- set_or_return(
- :non_unique,
- arg,
- kind_of: [ TrueClass, FalseClass ]
- )
- end
end
end
end
diff --git a/lib/chef/resource/user/linux_user.rb b/lib/chef/resource/user/linux_user.rb
index 056a421197..2c57e607cc 100644
--- a/lib/chef/resource/user/linux_user.rb
+++ b/lib/chef/resource/user/linux_user.rb
@@ -25,7 +25,6 @@ class Chef
provides :linux_user
provides :user, os: "linux"
-
end
end
end
diff --git a/spec/unit/provider/user_spec.rb b/spec/unit/provider/user_spec.rb
index 7a07527834..0d806b2eb2 100644
--- a/spec/unit/provider/user_spec.rb
+++ b/spec/unit/provider/user_spec.rb
@@ -129,7 +129,7 @@ describe Chef::Provider::User do
end
it "shouldn't try and convert the group gid if none has been supplied" do
- @new_resource.gid(false)
+ @new_resource.gid(nil)
expect(@provider).not_to receive(:convert_group_name)
@provider.load_current_resource
end