From 0cd2493f8bb15dfac34336a2d5e87f2f999b34df Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Tue, 20 Aug 2024 11:26:57 +0200 Subject: [PATCH] Fix listing of globally shared inventories [SCI-10991] --- app/models/repository.rb | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/app/models/repository.rb b/app/models/repository.rb index 700000262..9fb86d8de 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -49,16 +49,12 @@ class Repository < RepositoryBase scope :globally_shared, -> { where(permission_level: %i(shared_read shared_write)) } scope :viewable_by_user, lambda { |user, teams = user.current_team| - readable_repositories = joins(user_assignments: :user_role) - .left_outer_joins(:team_shared_objects) - .where(team: teams) - readable_repositories = - readable_repositories - .where(user_assignments: { user: user }) - .where('? = ANY(user_roles.permissions)', RepositoryPermissions::READ) + readable_repositories = readable_by_user(user) + readable_repositories + .where(team: teams) .or(readable_repositories - .where(permission_level: [Extends::SHARED_OBJECTS_PERMISSION_LEVELS[:shared_read], Extends::SHARED_OBJECTS_PERMISSION_LEVELS[:shared_write]])) - readable_repositories.distinct + .where(permission_level: [Extends::SHARED_OBJECTS_PERMISSION_LEVELS[:shared_read], Extends::SHARED_OBJECTS_PERMISSION_LEVELS[:shared_write]]) + .where.not(team: teams)) } scope :assigned_to_project, lambda { |project|