diff options
author | Rémy Coutable <remy@rymai.me> | 2017-01-04 17:35:59 +0100 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-01-05 13:30:31 +0100 |
commit | 8b1914ceb22d2312da6160eae5e0a586e9aa2a65 (patch) | |
tree | 7e6117b3d3c906c1fc566a94161907ef04c457fd | |
parent | 042bcdd555acda83ed1d49e941334fdac8c285a8 (diff) | |
download | gitlab-ce-fix-users-api-500-error.tar.gz |
Fix the failing spec in POST /users APIfix-users-api-500-error
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r-- | changelogs/unreleased/fix-users-api-500-error.yml | 4 | ||||
-rw-r--r-- | lib/api/users.rb | 11 |
2 files changed, 8 insertions, 7 deletions
diff --git a/changelogs/unreleased/fix-users-api-500-error.yml b/changelogs/unreleased/fix-users-api-500-error.yml new file mode 100644 index 00000000000..ac9e7a480d8 --- /dev/null +++ b/changelogs/unreleased/fix-users-api-500-error.yml @@ -0,0 +1,4 @@ +--- +title: Fix 500 errors when creating a user with identity via API +merge_request: 8442 +author: diff --git a/lib/api/users.rb b/lib/api/users.rb index de07fbf59fc..0db76ec7877 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -91,10 +91,11 @@ module API authenticated_as_admin! # Filter out params which are used later - identity_attrs = params.slice(:provider, :extern_uid) + user_params = declared_params(include_missing: false) + identity_attrs = user_params.slice(:provider, :extern_uid) confirm = params.delete(:confirm) - user = User.new(declared_params(include_missing: false)) + user = User.new(user_params.except(:extern_uid, :provider)) user.skip_confirmation! unless confirm if identity_attrs.any? @@ -159,11 +160,7 @@ module API end end - # Delete already handled parameters - user_params.delete(:extern_uid) - user_params.delete(:provider) - - if user.update_attributes(user_params) + if user.update_attributes(user_params.except(:extern_uid, :provider)) present user, with: Entities::UserPublic else render_validation_error!(user) |