summaryrefslogtreecommitdiff
path: root/app/services/spam
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-15 00:08:48 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-15 00:08:48 +0000
commitb69f406585ff64b1c5140ebba775cc754fabb358 (patch)
tree9af7dfeb0c3f0f8db189a6e18c6be398a7729e2d /app/services/spam
parent866ca4e49ff74ffadf8e6f6ff663a168489c2aba (diff)
downloadgitlab-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.rb16
-rw-r--r--app/services/spam/mark_as_spam_service.rb14
-rw-r--r--app/services/spam/spam_check_service.rb26
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
}
)