diff options
Diffstat (limited to 'app/services/authorized_project_update/project_recalculate_service.rb')
-rw-r--r-- | app/services/authorized_project_update/project_recalculate_service.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/app/services/authorized_project_update/project_recalculate_service.rb b/app/services/authorized_project_update/project_recalculate_service.rb index cbb8efaf99f..d70d0efc2af 100644 --- a/app/services/authorized_project_update/project_recalculate_service.rb +++ b/app/services/authorized_project_update/project_recalculate_service.rb @@ -26,7 +26,7 @@ module AuthorizedProjectUpdate def current_authorizations strong_memoize(:current_authorizations) do - project.project_authorizations + apply_scopes(project.project_authorizations) .pluck(:user_id, :access_level) # rubocop: disable CodeReuse/ActiveRecord end end @@ -35,8 +35,7 @@ module AuthorizedProjectUpdate strong_memoize(:fresh_authorizations) do result = [] - Projects::Members::EffectiveAccessLevelFinder.new(project) - .execute + effective_access_levels .each_batch(of: BATCH_SIZE, column: :user_id) do |member_batch| result += member_batch.pluck(:user_id, 'MAX(access_level)') # rubocop: disable CodeReuse/ActiveRecord end @@ -76,5 +75,13 @@ module AuthorizedProjectUpdate end end end + + def apply_scopes(project_authorizations) + project_authorizations + end + + def effective_access_levels + Projects::Members::EffectiveAccessLevelFinder.new(project).execute + end end end |