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
3 years ago
..
account_suggestions Change auto-following admin-selected accounts, show in recommendations (#16078) 4 years ago
admin Fix 404 error when filtering admin action logs by non-existent target account (#16643) 3 years ago
concerns Add remove from followers api (#16864) 3 years ago
form Add remove from followers api (#16864) 3 years ago
web Add `policy` param to `POST /api/v1/push/subscriptions` (#16040) 4 years ago
account.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 3 years ago
account_alias.rb Remove dependency on goldfinger gem (#14919) 4 years ago
account_conversation.rb allow pagination by min_id and max_id (#14776) 4 years ago
account_deletion_request.rb Change account suspensions to be reversible by default (#14726) 4 years ago
account_domain_block.rb Fix crash when saving invalid domain name (#11528) 6 years ago
account_filter.rb Fix admins being able to suspend their instance actor (#14567) 4 years ago
account_identity_proof.rb Fix Keybase verification using wrong domain for remote accounts (#10547) 6 years ago
account_migration.rb Fix race conditions on account migration creation (#15597) 4 years ago
account_moderation_note.rb
account_note.rb Fix AccountNote not having a maximum length (#16942) 3 years ago
account_pin.rb
account_stat.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 3 years ago
account_statuses_cleanup_policy.rb Allow keeping only 1 boosts/favs on auto deleting posts (#16653) 3 years ago
account_suggestions.rb Change auto-following admin-selected accounts, show in recommendations (#16078) 4 years ago
account_summary.rb Fix FollowRecommendationsScheduler failing because of unpopulated views (#16189) 4 years ago
account_warning.rb Add account sensitized (#14361) 4 years ago
account_warning_preset.rb Add titles to warning presets in admin UI (#13252) 5 years ago
admin.rb
announcement.rb Change order of announcements in admin page to sort them newest-first (#15091) 4 years ago
announcement_filter.rb Add announcements (#12662) 5 years ago
announcement_mute.rb Add announcements (#12662) 5 years ago
announcement_reaction.rb Add announcements (#12662) 5 years ago
application_record.rb Fix records not being indexed sometimes (#12024) 5 years ago
backup.rb Add announcements (#12662) 5 years ago
block.rb
bookmark.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 3 years ago
canonical_email_block.rb Fix error when suspending user with an already-existing canonical email block (#17036) 3 years ago
context.rb
conversation.rb Revert "Remove conversation URI (#11423)" (#11424) 6 years ago
conversation_mute.rb
custom_emoji.rb Switch from unmaintained paperclip to kt-paperclip (#16724) 3 years ago
custom_emoji_category.rb Add batch actions and categories to admin UI for custom emojis (#11793) 5 years ago
custom_emoji_filter.rb Various fixes and improvements (#12878) 5 years ago
custom_filter.rb Optimize map { ... }.compact calls (#15513) 4 years ago
device.rb Add E2EE API (#13820) 5 years ago
domain_allow.rb Fix performance on instances list in admin UI (#15282) 4 years ago
domain_block.rb Add option to obfuscate domain name in public list of domain blocks (#15355) 4 years ago
email_domain_block.rb Add option to include resolved DNS records when blacklisting e-mail domains in admin UI (#13254) 5 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) 4 years ago
favourite.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 3 years ago
featured_tag.rb Fix featured tags not finding the right tag on save (#11504) 6 years ago
feed.rb allow pagination by min_id and max_id (#14776) 4 years ago
follow.rb Fix being able to import more than allowed number of follows (#15384) 4 years ago
follow_recommendation.rb Fix FollowRecommendationsScheduler failing because of unpopulated views (#16189) 4 years ago
follow_recommendation_filter.rb Add cold-start follow recommendations (#15945) 4 years ago
follow_recommendation_suppression.rb Add cold-start follow recommendations (#15945) 4 years ago
follow_request.rb Fix edge case where accepted follow cannot be processed because of follow limit (#16098) 4 years ago
home_feed.rb Fix rubocop config and warnings (#15503) 4 years ago
identity.rb Change identities id column to a bigint (#9371) 6 years ago
import.rb Fix follow limit preventing re-following of a moved account (#14207) 4 years ago
instance.rb Add management of delivery availability in Federation settings (#15771) 4 years ago
instance_filter.rb Add management of delivery availability in Federation settings (#15771) 4 years ago
invite.rb Change account suspensions to be reversible by default (#14726) 4 years ago
invite_filter.rb Various fixes and improvements (#12878) 5 years ago
ip_block.rb Add IP-based rules (#14963) 4 years ago
list.rb Improve account deletion performances further (#15407) 4 years ago
list_account.rb Add abilityto add oneself to lists (#12271) 5 years ago
list_feed.rb Fix rubocop config and warnings (#15503) 4 years ago
login_activity.rb Add authentication history (#16408) 4 years ago
marker.rb Add timeline read markers API (#11762) 5 years ago
media_attachment.rb Fix error when rendering public pages with media attachments (#16763) 3 years ago
mention.rb Improve support for aspects/circles (#8950) 6 years ago
message_franking.rb Add E2EE API (#13820) 5 years ago
mute.rb Add duration parameter to muting. (#13831) 4 years ago
notification.rb Prepare Mastodon for Rails 6 (#15911) 4 years ago
one_time_key.rb Add E2EE API (#13820) 5 years ago
poll.rb Fix rubocop config and warnings (#15503) 4 years ago
poll_vote.rb Add optimistic lock to avoid race conditions when handling votes (#10196) 6 years ago
preview_card.rb Switch from unmaintained paperclip to kt-paperclip (#16724) 3 years ago
public_feed.rb Fix rubocop config and warnings (#15503) 4 years ago
relationship_filter.rb Fix followings list order | Issue #13538 (#13676) 5 years ago
relay.rb Fix enable/disable relay failures (#13535) 5 years ago
remote_follow.rb Remove dependency on goldfinger gem (#14919) 4 years ago
report.rb Update Mastodon to Rails 6.1 (#15910) 4 years ago
report_filter.rb Add ability to filter reports by origin of target account (#16487) 4 years ago
report_note.rb Fix scope latest of ReportNote (#9630) 6 years ago
rule.rb Add server rules (#15769) 4 years ago
scheduled_status.rb Fix deleting a scheduled status immediately deleting media attachments (#9728) 6 years ago
search.rb
session_activation.rb Add Ruby 3.0 support (#16046) 4 years ago
setting.rb Use Rails' index_by where it makes sense (#15542) 4 years ago
site_upload.rb Improvements to image upload validation and creation (#10431) 6 years ago
status.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 3 years ago
status_pin.rb Add feature to automatically delete old toots (#16529) 3 years ago
status_stat.rb Reset status cache when status_stat or media_attachment updates (#9119) 6 years ago
system_key.rb Add E2EE API (#13820) 5 years ago
tag.rb Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915) 3 years ago
tag_feed.rb Fix rubocop config and warnings (#15503) 4 years ago
tag_filter.rb Change trending hashtags to be affected be reblogs (#16164) 4 years ago
tombstone.rb Record deleted(by mod) status to prevent re-appear (#10732) 6 years ago
trending_tags.rb Change trending hashtags to be affected be reblogs (#16164) 4 years ago
unavailable_domain.rb Fix performance on instances list in admin UI (#15282) 4 years ago
user.rb Fix reviving revoked sessions and invalidating login (#16943) 3 years ago
user_invite_request.rb Add "why do you want to join" field to invite requests (#10524) 6 years ago
web.rb
webauthn_credential.rb Fix validates :sign_count of WebauthnCredential (#14806) 4 years ago