summaryrefslogtreecommitdiff
path: root/app/finders/labels_finder.rb
diff options
context:
space:
mode:
authorEugenia Grieff <egrieff@gitlab.com>2019-09-12 17:14:43 +0100
committerEugenia Grieff <egrieff@gitlab.com>2019-10-22 17:00:56 +0100
commit6ff7788d4cb6fcfec1ec1a2e9d42c04a0eb31891 (patch)
treebd20d9fb6af0c7652a6db3b112a731f5abeee514 /app/finders/labels_finder.rb
parent6653aab95dfdfd260e8814e7499cc2345f451f99 (diff)
downloadgitlab-ce-6ff7788d4cb6fcfec1ec1a2e9d42c04a0eb31891.tar.gz
Fix labels finder to filter visible issuables
Use project scopes to filter project labels Add changelog file Check issuables visibility in LabelsFinder Add specs for issuables visibility cases Rename Project method to reuse in LabelsFinder Remove commented code Improve changelog title
Diffstat (limited to 'app/finders/labels_finder.rb')
-rw-r--r--app/finders/labels_finder.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/app/finders/labels_finder.rb b/app/finders/labels_finder.rb
index e523942ea4c..027cdc4fc78 100644
--- a/app/finders/labels_finder.rb
+++ b/app/finders/labels_finder.rb
@@ -51,7 +51,7 @@ class LabelsFinder < UnionFinder
end
label_ids << Label.where(group_id: projects.group_ids)
- label_ids << Label.where(project_id: projects.select(:id)) unless only_group_labels?
+ label_ids << Label.where(project_id: ids_user_can_read_labels(projects)) unless only_group_labels?
end
label_ids
@@ -188,4 +188,10 @@ class LabelsFinder < UnionFinder
groups.select { |group| authorized_to_read_labels?(group) }
end
end
+
+ # rubocop: disable CodeReuse/ActiveRecord
+ def ids_user_can_read_labels(projects)
+ Project.where(id: projects.select(:id)).ids_with_issuables_available_for(current_user)
+ end
+ # rubocop: enable CodeReuse/ActiveRecord
end