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:
authorPatricio Cano <suprnova32@gmail.com>2016-07-28 03:03:06 +0300
committerPatricio Cano <suprnova32@gmail.com>2016-08-15 21:17:58 +0300
commit95419679f23f0628d1885dd9656cc159e9d55ea9 (patch)
tree4ec924b2f7dfbfd9e0390065d430c9daff8984bb /app/services
parent640e485c6aa19f8fca1be7fc45e7f65da4469fbd (diff)
Lay the ground works to submit information to Akismet
- New concern `AkismetSubmittable` to allow issues and other `Spammable` models to be submitted to Akismet. - New model `UserAgentDetail` to store information needed for Akismet. - Services needed for their creation and tests.
Diffstat (limited to 'app/services')
-rw-r--r--app/services/issues/create_service.rb5
-rw-r--r--app/services/user_agent_detail_service.rb12
2 files changed, 17 insertions, 0 deletions
diff --git a/app/services/issues/create_service.rb b/app/services/issues/create_service.rb
index 5e2de2ccf64..8e9d74103c7 100644
--- a/app/services/issues/create_service.rb
+++ b/app/services/issues/create_service.rb
@@ -15,6 +15,7 @@ module Issues
notification_service.new_issue(issue, current_user)
todo_service.new_issue(issue, current_user)
event_service.open_issue(issue, current_user)
+ user_agent_detail_service(issue, request).create
issue.create_cross_references!(current_user)
execute_hooks(issue, 'open')
end
@@ -27,5 +28,9 @@ module Issues
def spam_check_service
SpamCheckService.new(project, current_user, params)
end
+
+ def user_agent_detail_service(issue, request)
+ UserAgentDetailService.new(issue, request)
+ end
end
end
diff --git a/app/services/user_agent_detail_service.rb b/app/services/user_agent_detail_service.rb
new file mode 100644
index 00000000000..dd995955be3
--- /dev/null
+++ b/app/services/user_agent_detail_service.rb
@@ -0,0 +1,12 @@
+class UserAgentDetailService
+ attr_accessor :subject, :request
+
+ def initialize(subject, request)
+ @subject, @request = subject, request
+ end
+
+ def create
+ return unless request
+ subject.create_user_agent_detail(user_agent: request.env['HTTP_USER_AGENT'], ip_address: request.env['action_dispatch.remote_ip'].to_s)
+ end
+end