Class: Mutations::Members::BulkUpdateBase

Inherits:
BaseMutation
  • Object
show all
Includes:
API::Helpers::MembersHelpers
Defined in:
app/graphql/mutations/members/bulk_update_base.rb

Direct Known Subclasses

Groups::BulkUpdate, Projects::BulkUpdate

Constant Summary collapse

MAX_MEMBERS_UPDATE_LIMIT =
50
MAX_MEMBERS_UPDATE_ERROR =
"Count of members to be updated should be less than #{MAX_MEMBERS_UPDATE_LIMIT}."
.freeze
INVALID_MEMBERS_ERROR =
'Only access level of direct members can be updated.'

Constants inherited from BaseMutation

BaseMutation::ERROR_MESSAGE

Constants included from Gitlab::Graphql::Authorize::AuthorizeResource

Gitlab::Graphql::Authorize::AuthorizeResource::ConfigurationError, Gitlab::Graphql::Authorize::AuthorizeResource::RESOURCE_ACCESS_ERROR

Instance Method Summary collapse

Methods included from API::Helpers::MembersHelpers

#add_multiple_members?, #add_single_member?, #add_single_member_by_user_id, #authorize_admin_source!, #authorize_read_source_member!, #find_all_members, #find_all_members_for_group, #find_all_members_for_project, #find_source, member_access_levels, #present_member_invitations, #present_members, #retrieve_member_invitations, #retrieve_members, #source_members

Methods inherited from BaseMutation

#api_user?, authorization, authorized?, authorizes_object?, #current_user, #errors_on_object, #load_application_object, #read_only?, #unauthorized_object

Methods included from Gitlab::Graphql::Authorize::AuthorizeResource

#authorize!, #authorized_find!, #authorized_resource?, #raise_resource_not_available_error!

Instance Method Details

#resolve(**args) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/graphql/mutations/members/bulk_update_base.rb', line 28

def resolve(**args)
  result = ::Members::UpdateService
             .new(current_user, args.except(:user_ids, source_id_param_name))
             .execute(@updatable_members)

  {
    source_members_key => result[:members],
    errors: Array.wrap(result[:message])
  }
rescue Gitlab::Access::AccessDeniedError
  {
    errors: ["Unable to update members, please check user permissions."]
  }
end