42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module BackgroundMigration
|
|
# rubocop:disable Style/Documentation
|
|
class RecalculateProjectAuthorizations
|
|
def perform(user_ids)
|
|
user_ids.each do |user_id|
|
|
user = User.find_by(id: user_id)
|
|
|
|
next unless 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
|