diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-02-18 10:34:06 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-02-18 10:34:06 +0000 |
commit | 859a6fb938bb9ee2a317c46dfa4fcc1af49608f0 (patch) | |
tree | d7f2700abe6b4ffcb2dcfc80631b2d87d0609239 /app/services/snippets/update_service.rb | |
parent | 446d496a6d000c73a304be52587cd9bbc7493136 (diff) | |
download | gitlab-ce-859a6fb938bb9ee2a317c46dfa4fcc1af49608f0.tar.gz |
Add latest changes from gitlab-org/gitlab@13-9-stable-eev13.9.0-rc42
Diffstat (limited to 'app/services/snippets/update_service.rb')
-rw-r--r-- | app/services/snippets/update_service.rb | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/app/services/snippets/update_service.rb b/app/services/snippets/update_service.rb index b982ff98747..5b427817a02 100644 --- a/app/services/snippets/update_service.rb +++ b/app/services/snippets/update_service.rb @@ -7,6 +7,11 @@ module Snippets UpdateError = Class.new(StandardError) def execute(snippet) + # NOTE: disable_spam_action_service can be removed when the ':snippet_spam' feature flag is removed. + disable_spam_action_service = params.delete(:disable_spam_action_service) == true + @request = params.delete(:request) + @spam_params = Spam::SpamActionService.filter_spam_params!(params) + return invalid_params_error(snippet) unless valid_params? if visibility_changed?(snippet) && !visibility_allowed?(snippet, visibility_level) @@ -14,12 +19,20 @@ module Snippets end update_snippet_attributes(snippet) - spam_check(snippet, current_user, action: :update) + + unless disable_spam_action_service + Spam::SpamActionService.new( + spammable: snippet, + request: request, + user: current_user, + action: :update + ).execute(spam_params: spam_params) + end if save_and_commit(snippet) Gitlab::UsageDataCounters::SnippetCounter.count(:update) - ServiceResponse.success(payload: { snippet: snippet } ) + ServiceResponse.success(payload: { snippet: snippet }) else snippet_error_response(snippet, 400) end @@ -27,6 +40,8 @@ module Snippets private + attr_reader :request, :spam_params + def visibility_changed?(snippet) visibility_level && visibility_level.to_i != snippet.visibility_level end |