39 lines
1.2 KiB
Ruby
39 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module BackgroundMigration
|
|
# rubocop:disable Style/Documentation
|
|
class RecalculateProjectAuthorizationsWithMinMaxUserId
|
|
def perform(min_user_id, max_user_id)
|
|
User.where(id: min_user_id..max_user_id).find_each do |user|
|
|
service = Users::RefreshAuthorizedProjectsService.new(
|
|
user,
|
|
incorrect_auth_found_callback:
|
|
->(project_id, access_level) do
|
|
logger.info(message: 'Removing ProjectAuthorizations',
|
|
user_id: user.id,
|
|
project_id: project_id,
|
|
access_level: access_level)
|
|
end,
|
|
missing_auth_found_callback:
|
|
->(project_id, access_level) do
|
|
logger.info(message: 'Creating ProjectAuthorizations',
|
|
user_id: user.id,
|
|
project_id: project_id,
|
|
access_level: access_level)
|
|
end
|
|
)
|
|
|
|
service.execute
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def logger
|
|
@logger ||= Gitlab::BackgroundMigration::Logger.build
|
|
end
|
|
end
|
|
end
|
|
end
|