diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-17 17:30:49 -0200 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-19 14:58:27 -0200 |
commit | d3b76e832f0afc38e2d0ffdff540c708a74ac26c (patch) | |
tree | 9c7b92639ad5aaceda6ab73f5a396de256aa65fd /app/finders/labels_finder.rb | |
parent | 1e5ea6e7e05cd45fc56d0341ac8b5c32e57779b5 (diff) | |
download | gitlab-ce-d3b76e832f0afc38e2d0ffdff540c708a74ac26c.tar.gz |
Reuse LabelsFinder on Banzai::Filter::LabelReferenceFilter
Diffstat (limited to 'app/finders/labels_finder.rb')
-rw-r--r-- | app/finders/labels_finder.rb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/app/finders/labels_finder.rb b/app/finders/labels_finder.rb index 48fd1280ed2..65db4184ecf 100644 --- a/app/finders/labels_finder.rb +++ b/app/finders/labels_finder.rb @@ -4,7 +4,9 @@ class LabelsFinder < UnionFinder @params = params end - def execute + def execute(authorized_only: true) + @authorized_only = authorized_only + items = find_union(label_ids, Label) items = with_title(items) sort(items) @@ -12,7 +14,7 @@ class LabelsFinder < UnionFinder private - attr_reader :current_user, :params + attr_reader :current_user, :params, :authorized_only def label_ids label_ids = [] @@ -57,7 +59,7 @@ class LabelsFinder < UnionFinder return @project if defined?(@project) if project_id - @project = available_projects.find(project_id) rescue nil + @project = find_project else @project = nil end @@ -65,10 +67,18 @@ class LabelsFinder < UnionFinder @project end + def find_project + if authorized_only + available_projects.find_by(id: project_id) + else + Project.find_by(id: project_id) + end + end + def projects return @projects if defined?(@projects) - @projects = available_projects + @projects = authorized_only ? available_projects : Project.all @projects = @projects.in_namespace(group_id) if group_id @projects = @projects.where(id: projects_ids) if projects_ids @projects = @projects.reorder(nil) |