From 130974d58d5359ab7f7d104a58edce0b14e44f40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Mon, 5 Feb 2018 17:45:47 +0100 Subject: [PATCH] FIX: automatically unsilence users --- app/jobs/scheduled/unsilence_users.rb | 11 +++++++++++ spec/jobs/unsilence_users_spec.rb | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 app/jobs/scheduled/unsilence_users.rb create mode 100644 spec/jobs/unsilence_users_spec.rb diff --git a/app/jobs/scheduled/unsilence_users.rb b/app/jobs/scheduled/unsilence_users.rb new file mode 100644 index 00000000000..c609894fd52 --- /dev/null +++ b/app/jobs/scheduled/unsilence_users.rb @@ -0,0 +1,11 @@ +module Jobs + class UnsilenceUsers < Jobs::Scheduled + every 15.minutes + + def execute(args) + User.where("silenced_till IS NOT NULL AND silenced_till < now()").find_each do |user| + UserSilencer.unsilence(user, Discourse.system_user) + end + end + end +end diff --git a/spec/jobs/unsilence_users_spec.rb b/spec/jobs/unsilence_users_spec.rb new file mode 100644 index 00000000000..3f16350297a --- /dev/null +++ b/spec/jobs/unsilence_users_spec.rb @@ -0,0 +1,16 @@ +require "rails_helper" + +describe Jobs::UnsilenceUsers do + it "unsilence users" do + user = Fabricate(:user) + UserSilencer.silence(user, Discourse.system_user, silenced_till: 2.days.ago) + + user.reload + expect(user.silenced_till).to be + + Jobs::UnsilenceUsers.new.execute({}) + + user.reload + expect(user.silenced_till).to be(nil) + end +end