diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-29 14:13:29 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-29 14:13:55 +0000 |
commit | 9fdc4213b6a4bb8f45d6e65f90047ac742e1c48b (patch) | |
tree | 015c539e5b143976dd238e832703da09b92268dd | |
parent | 9ca24e5c1f715a597e694961ac0d60674166039a (diff) | |
download | gitlab-ce-9fdc4213b6a4bb8f45d6e65f90047ac742e1c48b.tar.gz |
Add latest changes from gitlab-org/security/gitlab@14-10-stable-ee
-rw-r--r-- | app/helpers/timeboxes_helper.rb | 4 | ||||
-rw-r--r-- | app/views/shared/milestones/_milestone.html.haml | 2 | ||||
-rw-r--r-- | app/views/shared/milestones/_sidebar.html.haml | 2 | ||||
-rw-r--r-- | spec/helpers/timeboxes_helper_spec.rb | 19 |
4 files changed, 23 insertions, 4 deletions
diff --git a/app/helpers/timeboxes_helper.rb b/app/helpers/timeboxes_helper.rb index c81fbcbfd11..39993bbfb44 100644 --- a/app/helpers/timeboxes_helper.rb +++ b/app/helpers/timeboxes_helper.rb @@ -153,11 +153,11 @@ module TimeboxesHelper n_("%{releases} release", "%{releases} releases", count) % { releases: count } end - def recent_releases_with_counts(milestone) + def recent_releases_with_counts(milestone, user) total_count = milestone.releases.size return [[], 0, 0] if total_count == 0 - recent_releases = milestone.releases.recent.to_a + recent_releases = milestone.releases.recent.filter { |release| Ability.allowed?(user, :read_release, release) } more_count = total_count - recent_releases.size [recent_releases, total_count, more_count] end diff --git a/app/views/shared/milestones/_milestone.html.haml b/app/views/shared/milestones/_milestone.html.haml index 4e06b7902bd..4aecc0f6bd0 100644 --- a/app/views/shared/milestones/_milestone.html.haml +++ b/app/views/shared/milestones/_milestone.html.haml @@ -14,7 +14,7 @@ - if milestone.due_date || milestone.start_date .text-tertiary.gl-mb-2 = milestone_date_range(milestone) - - recent_releases, total_count, more_count = recent_releases_with_counts(milestone) + - recent_releases, total_count, more_count = recent_releases_with_counts(milestone, current_user) - unless total_count == 0 .text-tertiary.gl-mb-2.milestone-release-links = sprite_icon("rocket", size: 12) diff --git a/app/views/shared/milestones/_sidebar.html.haml b/app/views/shared/milestones/_sidebar.html.haml index a1e94172ec3..ed5373fa58c 100644 --- a/app/views/shared/milestones/_sidebar.html.haml +++ b/app/views/shared/milestones/_sidebar.html.haml @@ -138,7 +138,7 @@ = milestone.merge_requests.merged.count - if project - - recent_releases, total_count, more_count = recent_releases_with_counts(milestone) + - recent_releases, total_count, more_count = recent_releases_with_counts(milestone, current_user) .block.releases .sidebar-collapsed-icon.has-tooltip{ title: milestone_releases_tooltip_text(milestone), data: { container: 'body', placement: 'left', boundary: 'viewport' } } %strong diff --git a/spec/helpers/timeboxes_helper_spec.rb b/spec/helpers/timeboxes_helper_spec.rb index e31f2df7372..f9fb40a616b 100644 --- a/spec/helpers/timeboxes_helper_spec.rb +++ b/spec/helpers/timeboxes_helper_spec.rb @@ -38,4 +38,23 @@ RSpec.describe TimeboxesHelper do end end end + + describe "#recent_releases_with_counts" do + let_it_be(:milestone) { create(:milestone) } + let_it_be(:project) { milestone.project } + let_it_be(:user) { create(:user) } + + subject { helper.recent_releases_with_counts(milestone, user) } + + before do + project.add_developer(user) + end + + it "returns releases with counts" do + _old_releases = create_list(:release, 2, project: project, milestones: [milestone]) + recent_public_releases = create_list(:release, 3, project: project, milestones: [milestone], released_at: '2022-01-01T18:00:00Z') + + is_expected.to match([match_array(recent_public_releases), 5, 2]) + end + end end |