blob: f373e6daea3b96a19fc2adfa1061f20173a0f0b8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# frozen_string_literal: true
module WorkItems
module Widgets
module MilestoneService
class BaseService < WorkItems::Widgets::BaseService
private
def handle_milestone_change(params:)
return unless params.present? && params.key?(:milestone_id)
unless has_permission?(:set_work_item_metadata)
params.delete(:milestone_id)
return
end
if params[:milestone_id].nil?
work_item.milestone = nil
return
end
project = work_item.project
milestone = MilestonesFinder.new({
project_ids: [project.id],
group_ids: project.group&.self_and_ancestors&.select(:id),
ids: [params[:milestone_id]]
}).execute.first
if milestone
work_item.milestone = milestone
else
params.delete(:milestone_id)
end
end
end
end
end
end
|