debian-mirror-gitlab/app/services/ci/runners/reset_registration_token_service.rb
2022-08-27 11:52:29 +05:30

36 lines
1 KiB
Ruby

# frozen_string_literal: true
module Ci
module Runners
class ResetRegistrationTokenService
# @param [ApplicationSetting, Project, Group] scope: the scope of the reset operation
# @param [User] user: the user performing the operation
def initialize(scope, user)
@scope = scope
@user = user
end
def execute
unless @user.present? && @user.can?(:update_runners_registration_token, scope)
return ServiceResponse.error(message: 'user not allowed to update runners registration token')
end
if scope.respond_to?(:runners_registration_token)
scope.reset_runners_registration_token!
runners_token = scope.runners_registration_token
else
scope.reset_runners_token!
runners_token = scope.runners_token
end
ServiceResponse.success(payload: { new_registration_token: runners_token })
end
private
attr_reader :scope, :user
end
end
end
Ci::Runners::ResetRegistrationTokenService.prepend_mod