Skip to content

Commit

Permalink
Extract user retrieval into its own method for easy overriding
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanyv committed Nov 10, 2022
1 parent 3b93765 commit 8d123d6
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions app/controllers/scim_rails/scim_users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ def create
end

def show
user = @company.public_send(ScimRails.config.scim_users_scope).find(params[:id])
user = find_user
json_scim_response(object: user)
end

def put_update
user = @company.public_send(ScimRails.config.scim_users_scope).find(params[:id])
user = find_user
update_status(user) unless put_active_param.nil?
user.update!(permitted_user_params)
json_scim_response(object: user)
Expand All @@ -57,13 +57,17 @@ def put_update
# TODO: PATCH will only deprovision or reprovision users.
# This will work just fine for Okta but is not SCIM compliant.
def patch_update
user = @company.public_send(ScimRails.config.scim_users_scope).find(params[:id])
user = find_user
update_status(user)
json_scim_response(object: user)
end

private

def find_user
@company.public_send(ScimRails.config.scim_users_scope).find(params[:id])
end

def permitted_user_params
ScimRails.config.mutable_user_attributes.each.with_object({}) do |attribute, hash|
hash[attribute] = find_value_for(attribute)
Expand Down

0 comments on commit 8d123d6

Please sign in to comment.