diff options
author | John Keiser <jkeiser@opscode.com> | 2014-08-20 10:37:10 -0700 |
---|---|---|
committer | John Keiser <jkeiser@opscode.com> | 2014-08-22 09:20:49 -0700 |
commit | 21d87873e784f97aad21d92eeef9b3a059e16b67 (patch) | |
tree | dcf2082bd31b51581efa1a281c29843fcf47cc24 | |
parent | e7f99fb5214ab2b59fc5dc798e1036e12e26c88d (diff) | |
download | chef-zero-21d87873e784f97aad21d92eeef9b3a059e16b67.tar.gz |
Get authenticate_user working
-rw-r--r-- | lib/chef_zero/endpoints/authenticate_user_endpoint.rb | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/chef_zero/endpoints/authenticate_user_endpoint.rb b/lib/chef_zero/endpoints/authenticate_user_endpoint.rb index b24a8ab..3194a69 100644 --- a/lib/chef_zero/endpoints/authenticate_user_endpoint.rb +++ b/lib/chef_zero/endpoints/authenticate_user_endpoint.rb @@ -7,18 +7,20 @@ module ChefZero class AuthenticateUserEndpoint < RestBase def post(request) request_json = JSON.parse(request.body, :create_additions => false) - name = request_json['name'] + name = request_json['username'] password = request_json['password'] begin - user = data_store.get(request.rest_path[0..-2] + ['users', name]) + user = data_store.get(['users', name]) rescue ChefZero::DataStore::DataNotFoundError raise RestErrorResponse.new(401, "Bad username or password") end user = JSON.parse(user, :create_additions => false) - user = DataNormalizer.normalize_user(user, name, 'username') + user = DataNormalizer.normalize_user(user, name, [ 'username' ]) if user['password'] != password raise RestErrorResponse.new(401, "Bad username or password") end + # Include only particular user data in the response + user.keep_if { |key,value| %w(first_name last_name display_name email username).include?(key) } json_response(200, { 'status' => 'linked', 'user' => user |