Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/issues')
-rw-r--r--app/services/issues/close_service.rb2
-rw-r--r--app/services/issues/create_service.rb16
-rw-r--r--app/services/issues/update_service.rb17
3 files changed, 27 insertions, 8 deletions
diff --git a/app/services/issues/close_service.rb b/app/services/issues/close_service.rb
index baf7974c45d..746f7d1f4c1 100644
--- a/app/services/issues/close_service.rb
+++ b/app/services/issues/close_service.rb
@@ -55,7 +55,7 @@ module Issues
def close_external_issue(issue, closed_via)
return unless project.external_issue_tracker&.support_close_issue?
- project.external_issue_tracker.close_issue(closed_via, issue)
+ project.external_issue_tracker.close_issue(closed_via, issue, current_user)
todo_service.close_issue(issue, current_user)
end
diff --git a/app/services/issues/create_service.rb b/app/services/issues/create_service.rb
index 44de8eb6389..d2285a375a1 100644
--- a/app/services/issues/create_service.rb
+++ b/app/services/issues/create_service.rb
@@ -2,20 +2,26 @@
module Issues
class CreateService < Issues::BaseService
- include SpamCheckMethods
include ResolveDiscussions
def execute(skip_system_notes: false)
+ @request = params.delete(:request)
+ @spam_params = Spam::SpamActionService.filter_spam_params!(params)
+
@issue = BuildService.new(project, current_user, params).execute
- filter_spam_check_params
filter_resolve_discussion_params
create(@issue, skip_system_notes: skip_system_notes)
end
def before_create(issue)
- spam_check(issue, current_user, action: :create)
+ Spam::SpamActionService.new(
+ spammable: issue,
+ request: request,
+ user: current_user,
+ action: :create
+ ).execute(spam_params: spam_params)
# current_user (defined in BaseService) is not available within run_after_commit block
user = current_user
@@ -46,8 +52,10 @@ module Issues
private
+ attr_reader :request, :spam_params
+
def user_agent_detail_service
- UserAgentDetailService.new(@issue, @request)
+ UserAgentDetailService.new(@issue, request)
end
# Applies label "incident" (creates it if missing) to incident issues.
diff --git a/app/services/issues/update_service.rb b/app/services/issues/update_service.rb
index 127ed04cf51..2906bdf62a7 100644
--- a/app/services/issues/update_service.rb
+++ b/app/services/issues/update_service.rb
@@ -2,12 +2,14 @@
module Issues
class UpdateService < Issues::BaseService
- include SpamCheckMethods
extend ::Gitlab::Utils::Override
def execute(issue)
handle_move_between_ids(issue)
- filter_spam_check_params
+
+ @request = params.delete(:request)
+ @spam_params = Spam::SpamActionService.filter_spam_params!(params)
+
change_issue_duplicate(issue)
move_issue_to_new_project(issue) || clone_issue(issue) || update_task_event(issue) || update(issue)
end
@@ -30,7 +32,14 @@ module Issues
end
def before_update(issue, skip_spam_check: false)
- spam_check(issue, current_user, action: :update) unless skip_spam_check
+ return if skip_spam_check
+
+ Spam::SpamActionService.new(
+ spammable: issue,
+ request: request,
+ user: current_user,
+ action: :update
+ ).execute(spam_params: spam_params)
end
def after_update(issue)
@@ -126,6 +135,8 @@ module Issues
private
+ attr_reader :request, :spam_params
+
def clone_issue(issue)
target_project = params.delete(:target_clone_project)
with_notes = params.delete(:clone_with_notes)