diff options
-rwxr-xr-x | lib/puppet/type/user.rb | 2 | ||||
-rwxr-xr-x | spec/unit/type/user.rb | 12 |
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 |