Some checks failed
Lock Threads / action (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot EE docker images / merge (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot CE docker images / merge (push) Has been cancelled
Run Chatwoot CE spec / lint-backend (push) Has been cancelled
Run Chatwoot CE spec / lint-frontend (push) Has been cancelled
Run Chatwoot CE spec / frontend-tests (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (0, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (1, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (10, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (11, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (12, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (13, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (14, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (15, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (2, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (3, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (4, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (5, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (6, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (7, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (8, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (9, 16) (push) Has been cancelled
Run Linux nightly installer / nightly (push) Has been cancelled
- Add Logistics component with progress tracking - Add OrderDetail component for order information - Support data-driven steps and actions - Add blue color scale to widget SCSS - Fix node overflow and progress bar rendering issues - Add English translations for dashboard components Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
58 lines
1.6 KiB
Ruby
58 lines
1.6 KiB
Ruby
class Platform::Api::V1::UsersController < PlatformController
|
|
# ref: https://stackoverflow.com/a/45190318/939299
|
|
# set resource is called for other actions already in platform controller
|
|
# we want to add login and token to that chain as well
|
|
before_action(only: [:login, :token]) { set_resource }
|
|
before_action(only: [:login, :token]) { validate_platform_app_permissible }
|
|
|
|
def show; end
|
|
|
|
def create
|
|
@resource = (User.from_email(user_params[:email]) || User.new(user_params))
|
|
@resource.skip_confirmation!
|
|
@resource.save!
|
|
@platform_app.platform_app_permissibles.find_or_create_by!(permissible: @resource)
|
|
end
|
|
|
|
def login
|
|
render json: { url: @resource.generate_sso_link }
|
|
end
|
|
|
|
def token; end
|
|
|
|
def update
|
|
@resource.assign_attributes(user_update_params)
|
|
|
|
# We are using devise's reconfirmable flow for changing emails
|
|
# But in case of platform APIs we don't want user to go through this extra step
|
|
@resource.skip_reconfirmation! if user_update_params[:email].present?
|
|
@resource.save!
|
|
end
|
|
|
|
def destroy
|
|
DeleteObjectJob.perform_later(@resource)
|
|
head :ok
|
|
end
|
|
|
|
private
|
|
|
|
def user_custom_attributes
|
|
return @resource.custom_attributes.merge(user_params[:custom_attributes]) if user_params[:custom_attributes]
|
|
|
|
@resource.custom_attributes
|
|
end
|
|
|
|
def user_update_params
|
|
# we want the merged custom attributes not the original one
|
|
user_params.except(:custom_attributes).merge({ custom_attributes: user_custom_attributes })
|
|
end
|
|
|
|
def set_resource
|
|
@resource = User.find(params[:id])
|
|
end
|
|
|
|
def user_params
|
|
params.permit(:name, :display_name, :email, :password, custom_attributes: {})
|
|
end
|
|
end
|