diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-15 00:08:48 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-15 00:08:48 +0000 |
commit | b69f406585ff64b1c5140ebba775cc754fabb358 (patch) | |
tree | 9af7dfeb0c3f0f8db189a6e18c6be398a7729e2d /app/services/spam | |
parent | 866ca4e49ff74ffadf8e6f6ff663a168489c2aba (diff) | |
download | gitlab-ce-b69f406585ff64b1c5140ebba775cc754fabb358.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/spam')
-rw-r--r-- | app/services/spam/ham_service.rb | 16 | ||||
-rw-r--r-- | app/services/spam/mark_as_spam_service.rb | 14 | ||||
-rw-r--r-- | app/services/spam/spam_check_service.rb | 26 |
3 files changed, 29 insertions, 27 deletions
diff --git a/app/services/spam/ham_service.rb b/app/services/spam/ham_service.rb index cedb9f02f3d..d0f53eea90c 100644 --- a/app/services/spam/ham_service.rb +++ b/app/services/spam/ham_service.rb @@ -4,23 +4,25 @@ module Spam class HamService include AkismetMethods - attr_accessor :target, :options + attr_accessor :spam_log, :options - def initialize(target) - @target = target - @user = target.user + def initialize(spam_log) + @spam_log = spam_log + @user = spam_log.user @options = { - ip_address: target.source_ip, - user_agent: target.user_agent + ip_address: spam_log.source_ip, + user_agent: spam_log.user_agent } end def execute if akismet.submit_ham - target.update_attribute(:submitted_as_ham, true) + spam_log.update_attribute(:submitted_as_ham, true) else false end end + + alias_method :spammable, :spam_log end end diff --git a/app/services/spam/mark_as_spam_service.rb b/app/services/spam/mark_as_spam_service.rb index ed5e674d8e9..0ebcf17927a 100644 --- a/app/services/spam/mark_as_spam_service.rb +++ b/app/services/spam/mark_as_spam_service.rb @@ -4,21 +4,21 @@ module Spam class MarkAsSpamService include ::AkismetMethods - attr_accessor :target, :options + attr_accessor :spammable, :options - def initialize(target:) - @target = target + def initialize(spammable:) + @spammable = spammable @options = {} - @options[:ip_address] = @target.ip_address - @options[:user_agent] = @target.user_agent + @options[:ip_address] = @spammable.ip_address + @options[:user_agent] = @spammable.user_agent end def execute - return unless target.submittable_as_spam? + return unless spammable.submittable_as_spam? return unless akismet.submit_spam - target.user_agent_detail.update_attribute(:submitted, true) + spammable.user_agent_detail.update_attribute(:submitted, true) end end end diff --git a/app/services/spam/spam_check_service.rb b/app/services/spam/spam_check_service.rb index a922b0d96e7..d19ef03976f 100644 --- a/app/services/spam/spam_check_service.rb +++ b/app/services/spam/spam_check_service.rb @@ -4,11 +4,11 @@ module Spam class SpamCheckService include AkismetMethods - attr_accessor :target, :request, :options + attr_accessor :spammable, :request, :options attr_reader :spam_log - def initialize(target:, request:) - @target = target + def initialize(spammable:, request:) + @spammable = spammable @request = request @options = {} @@ -17,8 +17,8 @@ module Spam @options[:user_agent] = @request.env['HTTP_USER_AGENT'] @options[:referrer] = @request.env['HTTP_REFERRER'] else - @options[:ip_address] = @target.ip_address - @options[:user_agent] = @target.user_agent + @options[:ip_address] = @spammable.ip_address + @options[:user_agent] = @spammable.user_agent end end @@ -29,10 +29,10 @@ module Spam SpamLog.verify_recaptcha!(user_id: user_id, id: spam_log_id) else # Otherwise, it goes to Akismet for spam check. - # If so, it assigns target spammable object as "spam" and creates a SpamLog record. + # If so, it assigns spammable object as "spam" and creates a SpamLog record. possible_spam = check(api) - target.spam = possible_spam unless target.allow_possible_spam? - target.spam_log = spam_log + spammable.spam = possible_spam unless spammable.allow_possible_spam? + spammable.spam_log = spam_log end end @@ -48,18 +48,18 @@ module Spam end def check_for_spam? - target.check_for_spam? + spammable.check_for_spam? end def create_spam_log(api) @spam_log = SpamLog.create!( { - user_id: target.author_id, - title: target.spam_title, - description: target.spam_description, + user_id: spammable.author_id, + title: spammable.spam_title, + description: spammable.spam_description, source_ip: options[:ip_address], user_agent: options[:user_agent], - noteable_type: target.class.to_s, + noteable_type: spammable.class.to_s, via_api: api } ) |