Browse Source

Fix user email address being banned on self-deletion (#16503)

* Add tests

* Fix user email address being banned on self-deletion

Fixes #16498
closed-social-v3
Claire 3 months ago
committed by Z
parent
commit
2476d4f391
3 changed files with 7 additions and 3 deletions
  1. +1
    -1
      app/controllers/settings/deletes_controller.rb
  2. +2
    -2
      app/models/account.rb
  3. +4
    -0
      spec/controllers/settings/deletes_controller_spec.rb

+ 1
- 1
app/controllers/settings/deletes_controller.rb View File

@ -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

+ 2
- 2
app/models/account.rb View File

@ -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

+ 4
- 0
spec/controllers/settings/deletes_controller_spec.rb View File

@ -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 }) }

Loading…
Cancel
Save