You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mastodon/app/models
Claire 02a87431cf
Fix error when suspending user with an already-existing canonical email block (#17036)
* Fix error when suspending user with an already-existing canonical email block

Fixes #17033

While attempting to create a `CanonicalEmailBlock` with an existing hash would
raise an `ActiveRecord::RecordNotUnique` error, this being done within a
transaction would cancel the whole transaction. For this reason, checking for
uniqueness in Rails would query the database within the transaction and avoid
invalidating the whole transaction for this reason.

A race condition is still possible, where multiple accounts sharing a canonical
email would be blocked in concurrent transactions, in which only one would
succeed, but that is way less likely to happen that the current issue, and can
always be retried after the first failure, unlike the current situation.

* Add tests
4 years ago
..
account_suggestions Change auto-following admin-selected accounts, show in recommendations (#16078) 5 years ago
admin Fix 404 error when filtering admin action logs by non-existent target account (#16643) 4 years ago
concerns Add remove from followers api (#16864) 4 years ago
form Add remove from followers api (#16864) 4 years ago
web Add `policy` param to `POST /api/v1/push/subscriptions` (#16040) 5 years ago
account.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 4 years ago
account_alias.rb Remove dependency on goldfinger gem (#14919) 5 years ago
account_conversation.rb allow pagination by min_id and max_id (#14776) 5 years ago
account_deletion_request.rb Change account suspensions to be reversible by default (#14726) 5 years ago
account_domain_block.rb
account_filter.rb Fix admins being able to suspend their instance actor (#14567) 5 years ago
account_identity_proof.rb
account_migration.rb Fix race conditions on account migration creation (#15597) 5 years ago
account_moderation_note.rb
account_note.rb Fix AccountNote not having a maximum length (#16942) 4 years ago
account_pin.rb
account_stat.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 4 years ago
account_statuses_cleanup_policy.rb Allow keeping only 1 boosts/favs on auto deleting posts (#16653) 4 years ago
account_suggestions.rb Change auto-following admin-selected accounts, show in recommendations (#16078) 5 years ago
account_summary.rb Fix FollowRecommendationsScheduler failing because of unpopulated views (#16189) 5 years ago
account_warning.rb Add account sensitized (#14361) 5 years ago
account_warning_preset.rb Add titles to warning presets in admin UI (#13252) 6 years ago
admin.rb
announcement.rb Change order of announcements in admin page to sort them newest-first (#15091) 5 years ago
announcement_filter.rb Add announcements (#12662) 6 years ago
announcement_mute.rb Add announcements (#12662) 6 years ago
announcement_reaction.rb Add announcements (#12662) 6 years ago
application_record.rb
backup.rb Add announcements (#12662) 6 years ago
block.rb
bookmark.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 4 years ago
canonical_email_block.rb Fix error when suspending user with an already-existing canonical email block (#17036) 4 years ago
context.rb
conversation.rb
conversation_mute.rb
custom_emoji.rb Switch from unmaintained paperclip to kt-paperclip (#16724) 4 years ago
custom_emoji_category.rb
custom_emoji_filter.rb
custom_filter.rb Optimize map { ... }.compact calls (#15513) 5 years ago
device.rb Add E2EE API (#13820) 6 years ago
domain_allow.rb Fix performance on instances list in admin UI (#15282) 5 years ago
domain_block.rb Add option to obfuscate domain name in public list of domain blocks (#15355) 5 years ago
email_domain_block.rb Add option to include resolved DNS records when blacklisting e-mail domains in admin UI (#13254) 6 years ago
encrypted_message.rb Change Redis#exists calls to Redis#exists? to avoid deprecation warning (#14191) 5 years ago
export.rb Add import/export feature for bookmarks (#14956) 5 years ago
favourite.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 4 years ago
featured_tag.rb
feed.rb allow pagination by min_id and max_id (#14776) 5 years ago
follow.rb Fix being able to import more than allowed number of follows (#15384) 5 years ago
follow_recommendation.rb Fix FollowRecommendationsScheduler failing because of unpopulated views (#16189) 5 years ago
follow_recommendation_filter.rb Add cold-start follow recommendations (#15945) 5 years ago
follow_recommendation_suppression.rb Add cold-start follow recommendations (#15945) 5 years ago
follow_request.rb Fix edge case where accepted follow cannot be processed because of follow limit (#16098) 5 years ago
home_feed.rb Fix rubocop config and warnings (#15503) 5 years ago
identity.rb
import.rb Fix follow limit preventing re-following of a moved account (#14207) 5 years ago
instance.rb Add management of delivery availability in Federation settings (#15771) 5 years ago
instance_filter.rb Add management of delivery availability in Federation settings (#15771) 5 years ago
invite.rb Change account suspensions to be reversible by default (#14726) 5 years ago
invite_filter.rb
ip_block.rb Add IP-based rules (#14963) 5 years ago
list.rb Improve account deletion performances further (#15407) 5 years ago
list_account.rb
list_feed.rb Fix rubocop config and warnings (#15503) 5 years ago
login_activity.rb Add authentication history (#16408) 4 years ago
marker.rb
media_attachment.rb Fix error when rendering public pages with media attachments (#16763) 4 years ago
mention.rb
message_franking.rb Add E2EE API (#13820) 6 years ago
mute.rb Add duration parameter to muting. (#13831) 5 years ago
notification.rb Prepare Mastodon for Rails 6 (#15911) 5 years ago
one_time_key.rb Add E2EE API (#13820) 6 years ago
poll.rb Fix rubocop config and warnings (#15503) 5 years ago
poll_vote.rb
preview_card.rb Switch from unmaintained paperclip to kt-paperclip (#16724) 4 years ago
public_feed.rb Fix rubocop config and warnings (#15503) 5 years ago
relationship_filter.rb Fix followings list order | Issue #13538 (#13676) 6 years ago
relay.rb Fix enable/disable relay failures (#13535) 6 years ago
remote_follow.rb Remove dependency on goldfinger gem (#14919) 5 years ago
report.rb Update Mastodon to Rails 6.1 (#15910) 5 years ago
report_filter.rb Add ability to filter reports by origin of target account (#16487) 4 years ago
report_note.rb
rule.rb Add server rules (#15769) 5 years ago
scheduled_status.rb
search.rb
session_activation.rb Add Ruby 3.0 support (#16046) 5 years ago
setting.rb Use Rails' index_by where it makes sense (#15542) 5 years ago
site_upload.rb
status.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 4 years ago
status_pin.rb Add feature to automatically delete old toots (#16529) 4 years ago
status_stat.rb
system_key.rb Add E2EE API (#13820) 6 years ago
tag.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 4 years ago
tag_feed.rb Fix rubocop config and warnings (#15503) 5 years ago
tag_filter.rb Change trending hashtags to be affected be reblogs (#16164) 5 years ago
tombstone.rb
trending_tags.rb Change trending hashtags to be affected be reblogs (#16164) 5 years ago
unavailable_domain.rb Fix performance on instances list in admin UI (#15282) 5 years ago
user.rb Fix reviving revoked sessions and invalidating login (#16943) 4 years ago
user_invite_request.rb
web.rb
webauthn_credential.rb Fix validates :sign_count of WebauthnCredential (#14806) 5 years ago