diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-10-05 16:35:02 +0300 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-10-05 16:35:02 +0300 |
commit | c972f2e459a6b45852a3d4e76566cdf772a6764a (patch) | |
tree | 9157e8421052e09620854c1a398f668ff5cab29e | |
parent | 33c663ae1d2d46fd451cdbd21f2c5f18b21fa632 (diff) | |
parent | 456ed01d3ee84007baaa6274731e137607f50830 (diff) |
Merge branch '50246-can-t-sort-group-issues-by-popularity-when-searching' into 'master'
Resolve "Can't sort group issues by popularity when searching"
Closes #50246
See merge request gitlab-org/gitlab-ce!21521
-rw-r--r-- | app/finders/issuable_finder.rb | 1 | ||||
-rw-r--r-- | app/finders/issues_finder.rb | 10 | ||||
-rw-r--r-- | changelogs/unreleased/50246-can-t-sort-group-issues-by-popularity-when-searching.yml | 6 | ||||
-rw-r--r-- | spec/controllers/groups_controller_spec.rb | 29 |
4 files changed, 41 insertions, 5 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index 17e9b59b355..1f98ecf95ca 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -363,6 +363,7 @@ class IssuableFinder def use_cte_for_search? return false unless search return false unless Gitlab::Database.postgresql? + return false unless Feature.enabled?(:use_cte_for_group_issues_search, default_enabled: true) params[:use_cte_for_search] end diff --git a/app/finders/issues_finder.rb b/app/finders/issues_finder.rb index 770e0bfe1a3..abdc47b9866 100644 --- a/app/finders/issues_finder.rb +++ b/app/finders/issues_finder.rb @@ -120,9 +120,13 @@ class IssuesFinder < IssuableFinder return @user_can_see_all_confidential_issues = true if current_user.full_private_access? @user_can_see_all_confidential_issues = - project? && - project && - project.team.max_member_access(current_user.id) >= CONFIDENTIAL_ACCESS_LEVEL + if project? && project + project.team.max_member_access(current_user.id) >= CONFIDENTIAL_ACCESS_LEVEL + elsif group + group.max_member_access_for_user(current_user) >= CONFIDENTIAL_ACCESS_LEVEL + else + false + end end def user_cannot_see_confidential_issues? diff --git a/changelogs/unreleased/50246-can-t-sort-group-issues-by-popularity-when-searching.yml b/changelogs/unreleased/50246-can-t-sort-group-issues-by-popularity-when-searching.yml new file mode 100644 index 00000000000..cc7a79d25e5 --- /dev/null +++ b/changelogs/unreleased/50246-can-t-sort-group-issues-by-popularity-when-searching.yml @@ -0,0 +1,6 @@ +--- +title: Fix sorting by priority or popularity on group issues page, when also searching + issue content +merge_request: 21521 +author: +type: fixed diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb index 65d6cd1a295..a099cdafa58 100644 --- a/spec/controllers/groups_controller_spec.rb +++ b/spec/controllers/groups_controller_spec.rb @@ -202,8 +202,8 @@ describe GroupsController do end describe 'GET #issues' do - let(:issue_1) { create(:issue, project: project) } - let(:issue_2) { create(:issue, project: project) } + let(:issue_1) { create(:issue, project: project, title: 'foo') } + let(:issue_2) { create(:issue, project: project, title: 'bar') } before do create_list(:award_emoji, 3, awardable: issue_2) @@ -224,6 +224,31 @@ describe GroupsController do expect(assigns(:issues)).to eq [issue_2, issue_1] end end + + context 'searching' do + # Remove as part of https://gitlab.com/gitlab-org/gitlab-ce/issues/52271 + before do + stub_feature_flags(use_cte_for_group_issues_search: false) + end + + it 'works with popularity sort' do + get :issues, id: group.to_param, search: 'foo', sort: 'popularity' + + expect(assigns(:issues)).to eq([issue_1]) + end + + it 'works with priority sort' do + get :issues, id: group.to_param, search: 'foo', sort: 'priority' + + expect(assigns(:issues)).to eq([issue_1]) + end + + it 'works with label priority sort' do + get :issues, id: group.to_param, search: 'foo', sort: 'label_priority' + + expect(assigns(:issues)).to eq([issue_1]) + end + end end describe 'GET #merge_requests' do |