Class: DeviseScim::UsersController
- Inherits:
-
ApplicationController
- Object
- ActionController::API
- ApplicationController
- DeviseScim::UsersController
- Defined in:
- app/controllers/devise_scim/users_controller.rb
Overview
rubocop:disable Metrics/ClassLength
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #index ⇒ Object
- #replace ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Instance Method Details
#create ⇒ Object
11 12 13 14 15 |
# File 'app/controllers/devise_scim/users_controller.rb', line 11 def create scim_u = Scim::User.from_h(parsed_body) user = multi_tenant? ? multi_tenant_create(scim_u) : single_tenant_create(scim_u) render_scim(scim_adapter_for(user, Scim::User.new).to_scim, status: :created) end |
#destroy ⇒ Object
38 39 40 |
# File 'app/controllers/devise_scim/users_controller.rb', line 38 def destroy handle_deprovision(find_user!(params[:id])) end |
#index ⇒ Object
5 6 7 8 9 |
# File 'app/controllers/devise_scim/users_controller.rb', line 5 def index scope = apply_filter(tenant_scope) scim_users = scope.map { |u| scim_adapter_for(u, Scim::User.new).to_scim } render_scim(Scim::ListResponse.new(resources: scim_users)) end |
#replace ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'app/controllers/devise_scim/users_controller.rb', line 21 def replace user = find_user!(params[:id]) scim_u = Scim::User.from_h(parsed_body) adapter = scim_adapter_for(user, scim_u) user.assign_attributes(adapter.attributes_for_update) user.save! render_scim(scim_adapter_for(user, Scim::User.new).to_scim) end |
#show ⇒ Object
17 18 19 |
# File 'app/controllers/devise_scim/users_controller.rb', line 17 def show render_scim(scim_adapter_for(find_user!(params[:id]), Scim::User.new).to_scim) end |
#update ⇒ Object
30 31 32 33 34 35 36 |
# File 'app/controllers/devise_scim/users_controller.rb', line 30 def update user = find_user!(params[:id]) ops = Scim::PatchOperation.parse_request(parsed_body) apply_patch(user, ops) user.save! render_scim(scim_adapter_for(user, Scim::User.new).to_scim) end |