summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlib/puppet/type/user.rb2
-rwxr-xr-xspec/unit/type/user.rb12
2 files changed, 9 insertions, 5 deletions
diff --git a/lib/puppet/type/user.rb b/lib/puppet/type/user.rb
index 56038869b..6b6ff82ab 100755
--- a/lib/puppet/type/user.rb
+++ b/lib/puppet/type/user.rb
@@ -145,7 +145,7 @@ module Puppet
desc "The user's password, in whatever encrypted format the local machine requires. Be sure to enclose any value that includes a dollar sign ($) in single quotes (\')."
validate do |value|
- raise ArgumentError, "Passwords cannot include ':'" if value.include?(":")
+ raise ArgumentError, "Passwords cannot include ':'" if value.is_a?(String) and value.include?(":")
end
def change_to_s(currentvalue, newvalue)
diff --git a/spec/unit/type/user.rb b/spec/unit/type/user.rb
index 15a3e2532..dadcc65ef 100755
--- a/spec/unit/type/user.rb
+++ b/spec/unit/type/user.rb
@@ -40,10 +40,6 @@ describe user do
it "should have a valid provider" do
user.create(:name => "foo").provider.class.ancestors.should be_include(Puppet::Provider)
end
-
- it "should fail if a ':' is included in the password" do
- lambda { user.create(:name => "foo", :password => 'some:thing') }.should raise_error(Puppet::Error)
- end
end
properties = [:ensure, :uid, :gid, :home, :comment, :shell, :password, :groups, :roles, :auths, :profiles, :project, :keys]
@@ -235,6 +231,14 @@ describe user do
it "should not include the password in the change log when changing the password" do
@password.change_to_s("other", "mypass").should_not be_include("mypass")
end
+
+ it "should fail if a ':' is included in the password" do
+ lambda { @password.should = "some:thing" }.should raise_error(ArgumentError)
+ end
+
+ it "should allow the value to be set to :absent" do
+ lambda { @password.should = :absent }.should_not raise_error
+ end
end
describe "when manages_solaris_rbac is enabled" do