From 0b4338007593a984bde00672c63b6b1d4d26aa1a Mon Sep 17 00:00:00 2001 From: Spencer Alan Date: Wed, 30 Jan 2019 16:15:26 -0500 Subject: [PATCH] fix put archiving bug --- app/controllers/scim_rails/scim_users_controller.rb | 4 +++- spec/controllers/scim_rails/scim_users_controller_spec.rb | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/controllers/scim_rails/scim_users_controller.rb b/app/controllers/scim_rails/scim_users_controller.rb index 9ef08e4..2e6f96c 100644 --- a/app/controllers/scim_rails/scim_users_controller.rb +++ b/app/controllers/scim_rails/scim_users_controller.rb @@ -98,7 +98,9 @@ module ScimRails end def active? - active = put_active_param || patch_active_param + active = put_active_param + active = patch_active_param if active.nil? + case active when true, "true", 1 true diff --git a/spec/controllers/scim_rails/scim_users_controller_spec.rb b/spec/controllers/scim_rails/scim_users_controller_spec.rb index 0eb4443..b579a6e 100644 --- a/spec/controllers/scim_rails/scim_users_controller_spec.rb +++ b/spec/controllers/scim_rails/scim_users_controller_spec.rb @@ -419,6 +419,27 @@ RSpec.describe ScimRails::ScimUsersController, type: :controller do expect(response.status).to eq 200 end + it "archives an inactive record" do + request.content_type = "application/scim+json" + put :put_update, params: { + id: 1, + userName: "test@example.com", + name: { + givenName: "Test", + familyName: "User" + }, + emails: [ + { + value: "test@example.com" + }, + ], + active: false + } + + expect(response.status).to eq 200 + expect(user.reload.active?).to eq false + end + it "returns :not_found for id that cannot be found" do get :put_update, params: { id: "fake_id" } -- libgit2 0.21.0