From 67559361e8db437ffee29af9a4fc4ea9e2daf51f Mon Sep 17 00:00:00 2001
From: sdukhovni <dukhovni@mit.edu>
Date: Thu, 14 Sep 2017 16:26:38 -0400
Subject: [PATCH] Add scheduled worker to purge old user IPs (#4951)

* Add scheduled worker to purge old user IPs

* Use ruby 1.9 hash syntax
---
 app/workers/scheduler/ip_cleanup_scheduler.rb | 12 ++++++++++++
 config/sidekiq.yml                            |  3 +++
 2 files changed, 15 insertions(+)
 create mode 100644 app/workers/scheduler/ip_cleanup_scheduler.rb

diff --git a/app/workers/scheduler/ip_cleanup_scheduler.rb b/app/workers/scheduler/ip_cleanup_scheduler.rb
new file mode 100644
index 00000000000..9f1593c9154
--- /dev/null
+++ b/app/workers/scheduler/ip_cleanup_scheduler.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+require 'sidekiq-scheduler'
+
+class Scheduler::IpCleanupScheduler
+  include Sidekiq::Worker
+
+  def perform
+    time_ago = 5.years.ago
+    SessionActivation.where('updated_at < ?', time_ago).destroy_all
+    User.where('last_sign_in_at < ?', time_ago).update_all(last_sign_in_ip: nil)
+  end
+end
diff --git a/config/sidekiq.yml b/config/sidekiq.yml
index a502f55933b..5e4310e7ed3 100644
--- a/config/sidekiq.yml
+++ b/config/sidekiq.yml
@@ -24,3 +24,6 @@
   subscriptions_cleanup_scheduler:
     cron: '2 2 * * 0'
     class: Scheduler::SubscriptionsCleanupScheduler
+  ip_cleanup_scheduler:
+    cron: '0 4 * * *'
+    class: Scheduler::IpCleanupScheduler