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>
56 lines
1.3 KiB
Ruby
56 lines
1.3 KiB
Ruby
class Api::V1::Accounts::TeamMembersController < Api::V1::Accounts::BaseController
|
|
before_action :fetch_team
|
|
before_action :check_authorization
|
|
before_action :validate_member_id_params, only: [:create, :update, :destroy]
|
|
|
|
def index
|
|
@team_members = @team.team_members.map(&:user)
|
|
end
|
|
|
|
def create
|
|
ActiveRecord::Base.transaction do
|
|
@team_members = @team.add_members(members_to_be_added_ids)
|
|
end
|
|
end
|
|
|
|
def update
|
|
ActiveRecord::Base.transaction do
|
|
@team.add_members(members_to_be_added_ids)
|
|
@team.remove_members(members_to_be_removed_ids)
|
|
end
|
|
@team_members = @team.members
|
|
render action: 'create'
|
|
end
|
|
|
|
def destroy
|
|
ActiveRecord::Base.transaction do
|
|
@team.remove_members(params[:user_ids])
|
|
end
|
|
head :ok
|
|
end
|
|
|
|
private
|
|
|
|
def members_to_be_added_ids
|
|
params[:user_ids] - current_members_ids
|
|
end
|
|
|
|
def members_to_be_removed_ids
|
|
current_members_ids - params[:user_ids]
|
|
end
|
|
|
|
def current_members_ids
|
|
@current_members_ids ||= @team.members.pluck(:id)
|
|
end
|
|
|
|
def fetch_team
|
|
@team = Current.account.teams.find(params[:team_id])
|
|
end
|
|
|
|
def validate_member_id_params
|
|
invalid_ids = params[:user_ids].map(&:to_i) - @team.account.user_ids
|
|
|
|
render json: { error: 'Invalid User IDs' }, status: :unauthorized and return if invalid_ids.present?
|
|
end
|
|
end
|