diff options
author | Luke Kanies <luke@madstop.com> | 2009-02-14 11:55:20 -0600 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2009-02-14 12:24:42 -0600 |
commit | 682dd8b933c5feeed389b644b75f27e66e863276 (patch) | |
tree | 0b389d83a65115a36e676bfe6735c89adeadee32 | |
parent | 44f97aa5815d4a8ab73302bd75b85e045f9944c4 (diff) | |
download | puppet-682dd8b933c5feeed389b644b75f27e66e863276.tar.gz puppet-682dd8b933c5feeed389b644b75f27e66e863276.tar.xz puppet-682dd8b933c5feeed389b644b75f27e66e863276.zip |
Fixing password validation to support symbols.
My fix for #1920 broke when you set :absent
or :present.
Signed-off-by: Luke Kanies <luke@madstop.com>
-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 |