Class: Import::SourceUsers::KeepAsPlaceholderService

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/import/source_users/keep_as_placeholder_service.rb

Instance Method Summary collapse

Methods included from Gitlab::InternalEventsTracking

#track_internal_event

Constructor Details

#initialize(import_source_user, current_user:) ⇒ KeepAsPlaceholderService

Returns a new instance of KeepAsPlaceholderService.



6
7
8
9
# File 'app/services/import/source_users/keep_as_placeholder_service.rb', line 6

def initialize(import_source_user, current_user:)
  @import_source_user = import_source_user
  @current_user = current_user
end

Instance Method Details

#executeObject



11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/import/source_users/keep_as_placeholder_service.rb', line 11

def execute
  return error_invalid_permissions unless current_user.can?(:admin_import_source_user, import_source_user)
  return error_invalid_status unless import_source_user.reassignable_status?

  if keep_as_placeholder
    track_keep_as_placeholder

    ServiceResponse.success(payload: import_source_user)
  else
    ServiceResponse.error(payload: import_source_user, message: import_source_user.errors.full_messages)
  end
end