diff options
Diffstat (limited to 'lib/chef_zero/endpoints/user_association_request_endpoint.rb')
-rw-r--r-- | lib/chef_zero/endpoints/user_association_request_endpoint.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/chef_zero/endpoints/user_association_request_endpoint.rb b/lib/chef_zero/endpoints/user_association_request_endpoint.rb index b57839e..ead081b 100644 --- a/lib/chef_zero/endpoints/user_association_request_endpoint.rb +++ b/lib/chef_zero/endpoints/user_association_request_endpoint.rb @@ -16,8 +16,18 @@ module ChefZero json = JSON.parse(request.body, :create_additions => false) association_request_path = [ 'organizations', orgname, 'association_requests', username ] if json['response'] == 'accept' + users = get_data(request, [ 'organizations', orgname, 'groups', 'users' ]) + users = JSON.parse(users, :create_additions => false) + delete_data(request, association_request_path) create_data(request, [ 'organizations', orgname, 'users' ], username, '{}') + + # Add the user to the users group if it isn't already there + if !users['users'] || !users['users'].include?(username) + users['users'] ||= [] + users['users'] |= [ username ] + set_data(request, [ 'organizations', orgname, 'groups', 'users' ], JSON.pretty_generate(users)) + end elsif json['response'] == 'reject' delete_data(request, association_request_path) else |