Add ability for admins to delete canonical email blocks (#16644)
* Add admin option to remove canonical email blocks from a deleted account * Add tootctl canonical_email_blocks to inspect and remove canonical email blocks
This commit is contained in:
@ -192,4 +192,36 @@ RSpec.describe Admin::AccountsController, type: :controller do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST #unblock_email' do
|
||||
subject do
|
||||
-> { post :unblock_email, params: { id: account.id } }
|
||||
end
|
||||
|
||||
let(:current_user) { Fabricate(:user, admin: admin) }
|
||||
let(:account) { Fabricate(:account, suspended: true) }
|
||||
let!(:email_block) { Fabricate(:canonical_email_block, reference_account: account) }
|
||||
|
||||
context 'when user is admin' do
|
||||
let(:admin) { true }
|
||||
|
||||
it 'succeeds in removing email blocks' do
|
||||
is_expected.to change { CanonicalEmailBlock.where(reference_account: account).count }.from(1).to(0)
|
||||
end
|
||||
|
||||
it 'redirects to admin account path' do
|
||||
subject.call
|
||||
expect(response).to redirect_to admin_account_path(account.id)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user is not admin' do
|
||||
let(:admin) { false }
|
||||
|
||||
it 'fails to remove avatar' do
|
||||
subject.call
|
||||
expect(response).to have_http_status :forbidden
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -37,7 +37,7 @@ RSpec.describe AccountPolicy do
|
||||
end
|
||||
end
|
||||
|
||||
permissions :unsuspend? do
|
||||
permissions :unsuspend?, :unblock_email? do
|
||||
before do
|
||||
alice.suspend!
|
||||
end
|
||||
|
Reference in New Issue
Block a user