about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2021-07-14 05:35:49 +0200
committerGitHub <noreply@github.com>2021-07-14 05:35:49 +0200
commit30ce6e395c5094c3989288619a99f539bb61f05d (patch)
tree22538e3652e13a185d7d4311f38245889264db2a
parent31593d14269bd5f21151d70eec1031aa30ee0937 (diff)
Fix user email address being banned on self-deletion (#16503)
* Add tests

* Fix user email address being banned on self-deletion

Fixes #16498
-rw-r--r--app/controllers/settings/deletes_controller.rb2
-rw-r--r--app/models/account.rb4
-rw-r--r--spec/controllers/settings/deletes_controller_spec.rb4
3 files changed, 7 insertions, 3 deletions
diff --git a/app/controllers/settings/deletes_controller.rb b/app/controllers/settings/deletes_controller.rb
index 7b8f8d207..e0dd5edcb 100644
--- a/app/controllers/settings/deletes_controller.rb
+++ b/app/controllers/settings/deletes_controller.rb
@@ -42,7 +42,7 @@ class Settings::DeletesController < Settings::BaseController
   end
 
   def destroy_account!
-    current_account.suspend!(origin: :local)
+    current_account.suspend!(origin: :local, block_email: false)
     AccountDeletionWorker.perform_async(current_user.account_id)
     sign_out
   end
diff --git a/app/models/account.rb b/app/models/account.rb
index 8be36bf5b..a6d8d1537 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -232,11 +232,11 @@ class Account < ApplicationRecord
     suspended? && deletion_request.present?
   end
 
-  def suspend!(date: Time.now.utc, origin: :local)
+  def suspend!(date: Time.now.utc, origin: :local, block_email: true)
     transaction do
       create_deletion_request!
       update!(suspended_at: date, suspension_origin: origin)
-      create_canonical_email_block!
+      create_canonical_email_block! if block_email
     end
   end
 
diff --git a/spec/controllers/settings/deletes_controller_spec.rb b/spec/controllers/settings/deletes_controller_spec.rb
index 8d5c4774f..92ab401c9 100644
--- a/spec/controllers/settings/deletes_controller_spec.rb
+++ b/spec/controllers/settings/deletes_controller_spec.rb
@@ -59,6 +59,10 @@ describe Settings::DeletesController do
           expect(user.account.reload).to be_suspended
         end
 
+        it 'does not create an email block' do
+          expect(CanonicalEmailBlock.block?(user.email)).to be false
+        end
+
         context 'when suspended' do
           let(:user) { Fabricate(:user, account_attributes: { username: 'alice', suspended_at: Time.now.utc }) }