From 25c8afd9561fcee0c3f1bd0e2a5fb2dd79cb8f5d Mon Sep 17 00:00:00 2001 From: John Keiser Date: Thu, 21 Aug 2014 17:30:48 -0700 Subject: Add users to the users group in an org if not already there --- lib/chef_zero/endpoints/user_association_request_endpoint.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 -- cgit v1.2.1