diff options
| -rwxr-xr-x | lib/puppet/type/user.rb | 11 | ||||
| -rwxr-xr-x | spec/unit/type/user.rb | 11 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/puppet/type/user.rb b/lib/puppet/type/user.rb index c6f1eccf6..9e32c89ae 100755 --- a/lib/puppet/type/user.rb +++ b/lib/puppet/type/user.rb @@ -279,6 +279,17 @@ module Puppet end end + #autorequire the roles that the user has + autorequire(:user) do + reqs = [] + + if roles_property = @parameters[:roles] and roles = roles_property.should + reqs += roles.split(',') + end + + reqs + end + newparam(:role_membership) do desc "Whether specified roles should be treated as the only roles of which the user is a member or whether they should merely diff --git a/spec/unit/type/user.rb b/spec/unit/type/user.rb index 6f01ab35a..e40837635 100755 --- a/spec/unit/type/user.rb +++ b/spec/unit/type/user.rb @@ -238,4 +238,15 @@ describe user do lambda { @ensure.should = :role }.should_not raise_error end end + + describe "when user has roles" do + it "should autorequire roles" do + testuser = Puppet.type(:user).create(:name => "testuser", :roles => "testrole") + testrole = Puppet.type(:user).create(:name => "testrole") + config = Puppet::Node::Catalog.new :testing do |conf| + [testuser, testrole].each { |resource| conf.add_resource resource } + end + testuser.autorequire + end + end end |
