Skip to content

Commit b676878

Browse files
committed
Merge pull request #233 from fatmcgav/fix_role_management
(MODULES-2636) Fix mongodb_user role management
2 parents 97cdfc2 + 273463a commit b676878

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

lib/puppet/provider/mongodb_user/mongodb.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def destroy
102102
mongo_eval("db.dropUser('#{@resource[:username]}')")
103103
end
104104
else
105-
Puppet.warning 'User removal is available only from master host'
105+
mongo_eval("db.dropUser('#{@resource[:username]}')")
106106
end
107107
end
108108

@@ -130,12 +130,12 @@ def roles=(roles)
130130
if mongo_24?
131131
mongo_eval("db.system.users.update({user:'#{@resource[:username]}'}, { $set: {roles: #{@resource[:roles].to_json}}})")
132132
else
133-
grant = roles-@resource[:roles]
133+
grant = roles-@property_hash[:roles]
134134
if grant.length > 0
135135
mongo_eval("db.getSiblingDB('#{@resource[:database]}').grantRolesToUser('#{@resource[:username]}', #{grant. to_json})")
136136
end
137137

138-
revoke = @resource[:roles]-roles
138+
revoke = @property_hash[:roles]-roles
139139
if revoke.length > 0
140140
mongo_eval("db.getSiblingDB('#{@resource[:database]}').revokeRolesFromUser('#{@resource[:username]}', #{revoke.to_json})")
141141
end

spec/unit/puppet/provider/mongodb_user/mongodb_spec.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,22 +109,27 @@
109109

110110
describe 'roles=' do
111111
it 'changes nothing' do
112+
resource.provider.set(:name => 'new_user', :ensure => :present, :roles => ['role1','role2'])
112113
provider.expects(:mongo_eval).times(0)
113114
provider.roles=(['role1', 'role2'])
114115
end
115116

116117
it 'grant a role' do
117-
provider.expects(:mongo_eval).with("db.getSiblingDB('new_database').grantRolesToUser('new_user', [\"role3\"])")
118+
resource.provider.set(:name => 'new_user', :ensure => :present, :roles => ['role1','role2'])
119+
provider.expects(:mongo_eval).
120+
with("db.getSiblingDB('new_database').grantRolesToUser('new_user', [\"role3\"])")
118121
provider.roles=(['role1', 'role2', 'role3'])
119122
end
120123

121124
it 'revokes a role' do
125+
resource.provider.set(:name => 'new_user', :ensure => :present, :roles => ['role1','role2'])
122126
provider.expects(:mongo_eval).
123127
with("db.getSiblingDB('new_database').revokeRolesFromUser('new_user', [\"role1\"])")
124128
provider.roles=(['role2'])
125129
end
126130

127131
it 'exchanges a role' do
132+
resource.provider.set(:name => 'new_user', :ensure => :present, :roles => ['role1','role2'])
128133
provider.expects(:mongo_eval).
129134
with("db.getSiblingDB('new_database').revokeRolesFromUser('new_user', [\"role1\"])")
130135
provider.expects(:mongo_eval).

0 commit comments

Comments
 (0)