Age | Commit message (Collapse) | Author |
|
(#16607)
* Add tests
* Add security-related tests
My first (unpublished) attempt at fixing the issues introduced (extremely
hard-to-exploit) security vulnerabilities, addressing them in a test.
* Fix authentication failures after going halfway through a sign-in attempt
* Refactor `authenticate_with_sign_in_token` and `authenticate_with_two_factor` to make the two authentication steps more obvious
|
|
|
|
The addition of authentication history broke the omniauth login with
the following error:
method=GET path=/auth/auth/cas/callback format=html
controller=Auth::OmniauthCallbacksController action=cas status=500
error='NameError: undefined local variable or method `user' for
#<Auth::OmniauthCallbacksController:0x00000000036290>
Did you mean? @user' duration=435.93 view=0.00 db=36.19
* app/controllers/auth/omniauth_callbacks_controller.rb: fix variable
name to `@user`
|
|
|
|
* Fix remotely-suspended accounts' toots being merged back into timelines
* Mark remotely-deleted accounts as remotely suspended
|
|
Fix issue #16603 undefined method `serialize_payload' for Unsuspend Account Service error.
It seems that this service forgot to `include Payloadable` so that `serialize_payload` could not be found in this service.
|
|
* Refactor AttachmentList
* Do not crash if a notification contains an unprocessed media attachment
Fixes #16530
* Fix spacing in compact form
|
|
Fixes #16571
|
|
(#16510)
* Fix followers synchronization mechanism not working when URI has empty path
To my knowledge, there is no current implementation on the fediverse
that can use bare domains (e.g., actor is at https://example.org instead of
something like https://example.org/actor) that also plans to support the
followers synchronization mechanism. However, Mastodon's current implementation
would exclude such accounts from followers list.
Also adds tests and rename them to reflect the proper method names.
* Move url prefix regexp to its own constant
|
|
* Add test
* Fix crash when encountering invalid account fields
|
|
* Add account statuses cleanup policy model
* Record last inspected toot to delete to speed up successive calls to statuses_to_delete
* Add service to cleanup a given account's statuses within a budget
* Add worker to go through account policies and delete old toots
* Fix last inspected status id logic
All existing statuses older or equal to last inspected status id must be
kept by the current policy. This is an invariant that must be kept so that
resuming deletion from the last inspected status remains sound.
* Add tests
* Refactor scheduler and add tests
* Add user interface
* Add support for discriminating based on boosts/favs
* Add UI support for min_reblogs and min_favs, rework UI
* Address first round of review comments
* Replace Snowflake#id_at_start with with_random parameter
* Add tests
* Add tests for StatusesCleanupController
* Rework settings page
* Adjust load-avoiding mechanisms
* Please CodeClimate
|
|
|
|
|
|
* Add account_notes relationship
* Add tests
* Fix owned account notes not being deleted when an account is deleted
* Add post-migration to clean up orphaned account notes
|
|
|
|
|
|
(#16518)
* Add confirmation modal when closing media edit modal with unsaved changes
* Move focal point media state to redux so it does not get erased by confirmation dialog
* Change upload modal behavior to keep it open while saving changes
Instead of closing it immediately and losing changes if they fail to save…
* Make it work with react-intl 2.9
|
|
|
|
Fixes “Scoped order is ignored, it's forced to be batch order.”
|
|
Fixes #16509
Microsoft Edge with translation enabled rewrites the DOM in ways that confuse
react and prevent it from working properly. Wrapping the offending parts in
a span avoids this issue.
|
|
|
|
Fixes #16515
Not using a router object somehow made `this.history` lag behind the real
browser history whenever pushing a new history item in `replyCompose`.
Not using the context-provided router in this case was an oversight made
when porting glitch-soc changes in #16499.
|
|
The auto-linking code basically rewrote the whole string escaping non-ascii
characters in an inefficient way, and building a full character offset map
between the unescaped and escaped texts before sending the contents to
TwitterText's extractor.
Instead of doing that, this commit changes the TwitterText regexps to include
valid IRI characters in addition to valid URI characters.
|
|
|
|
* Add tests
* Fix user email address being banned on self-deletion
Fixes #16498
|
|
* Change references to tootsuite/mastodon to mastodon/mastodon
* Remove obsolete test fixture
* Replace occurrences of tootsuite/mastodon with mastodon/mastodon in CHANGELOG
And a few other places
|
|
* Refactor shouldUpdateScroll passing
So far, shouldUpdateScroll has been manually passed down from the very top of
the React component hierarchy even though it is a static function common to
all ScrollContainer instances, so replaced that with a custom class extending
ScrollContainer.
* Generalize “press back to close modal” to any modal and to public pages
* Fix boost confirmation modal closing media modal
|
|
|
|
List various values like file size limits and supported mime types
|
|
Remove "active within last two weeks" exception for sign in token requirement
Change admin reset password to lock access until the password is reset
|
|
3.4.1 dropped account_stats.lock_version, but in a way breaking the usual
upgrade path by requiring services to be reloaded after the post-migrations.
Indeed, `self.locking_column = nil` was not enough for Rails to ignore the
`lock_version` column when preparing statements on application load, resulting
in some ActiveRecord queries (typically those involving
`includes(:account_stat)`) erroring out with:
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column account_stats.lock_version does not exist
|
|
Fixes #16435
|
|
|
|
* Fix anonymous access to outbox not being cached by the reverse proxy
Up until now, anonymous access to outbox was marked as public, but with a
0 duration for caching, which means remote proxies would only serve from cache
when the server was completely overwhelmed.
Changed that cache duration to one minute, so that repeated anonymous access
to one account's outbox can be appropriately cached.
Also added `Signature` to the `Vary` header in case a page is requested, so
that authenticated fetches are never served from cache (which only contains
public toots).
* Remove Vary: Accept header from webfinger controller
Indeed, we have stopped returning xrd, and only ever return jrd, so the
Accept request header does not matter anymore.
* Cache negative webfinger hits for 3 minutes
|
|
block (#16455)
|
|
|
|
(#16387)
|
|
* Fix WebUI crash when a toot with a playing video gets deleted
* Fix pop-up player not closing the moment a status is deleted
|
|
* Fix newlines in account notes added by the move handler
* Make MoveWorker more robust
|
|
Also adds timestamp in HTML itself to not rely on javascript
|
|
network (#16418)
* Add tests
* Fix serialization of followers/following counts when user hides their network
Fixes #16382
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
|
|
|
|
Fixes #15472
If the Tesseract worker fails at any point, re-try with cache settings that
overwrite the cache. It is difficult to catch more precise errors as those
are pretty opaque and do not occur when loading lang data but when trying to
detect text.
|
|
|
|
* New translations en.yml (Galician)
[ci skip]
* New translations activerecord.en.yml (Galician)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations devise.en.yml (Swedish)
[ci skip]
* New translations doorkeeper.en.yml (Swedish)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations simple_form.en.yml (Dutch)
[ci skip]
* New translations activerecord.en.yml (Dutch)
[ci skip]
* New translations doorkeeper.en.yml (Dutch)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (French)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Romanian)
[ci skip]
* New translations en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.yml (Welsh)
[ci skip]
* New translations en.yml (Telugu)
[ci skip]
* New translations en.yml (Malay)
[ci skip]
* New translations en.yml (Hindi)
[ci skip]
* New translations en.yml (Latvian)
[ci skip]
* New translations en.yml (Estonian)
[ci skip]
* New translations en.yml (Kazakh)
[ci skip]
* New translations en.yml (Croatian)
[ci skip]
* New translations en.yml (Uyghur)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Marathi)
[ci skip]
* New translations en.yml (Bengali)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Tamil)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Portuguese, Brazilian)
[ci skip]
* New translations en.yml (Sorani (Kurdish))
[ci skip]
* New translations en.yml (Silesian)
[ci skip]
* New translations en.yml (Taigi)
[ci skip]
* New translations en.yml (Ido)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations en.yml (Sanskrit)
[ci skip]
* New translations en.yml (Sardinian)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations en.yml (Serbian (Latin))
[ci skip]
* New translations en.yml (Tatar)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations en.yml (Asturian)
[ci skip]
* New translations en.yml (Scottish Gaelic)
[ci skip]
* New translations en.yml (Kannada)
[ci skip]
* New translations en.yml (Cornish)
[ci skip]
* New translations en.yml (Sinhala)
[ci skip]
* New translations en.yml (Breton)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Hebrew)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Basque)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.yml (Danish)
[ci skip]
* New translations en.yml (Czech)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (Bulgarian)
[ci skip]
* New translations en.yml (Arabic)
[ci skip]
* New translations en.yml (Afrikaans)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Georgian)
[ci skip]
* New translations en.yml (Lithuanian)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations en.yml (Serbian (Cyrillic))
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Urdu (Pakistan))
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Ukrainian)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations en.yml (Macedonian)
[ci skip]
* New translations en.yml (Slovenian)
[ci skip]
* New translations en.yml (Slovak)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Punjabi)
[ci skip]
* New translations en.yml (Norwegian)
[ci skip]
* New translations en.yml (Standard Moroccan Tamazight)
[ci skip]
* Update source file en.yml
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.json (Lithuanian)
[ci skip]
* New translations en.json (Lithuanian)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]
* New translations devise.en.yml (Chinese Simplified)
[ci skip]
* New translations doorkeeper.en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations activerecord.en.yml (Chinese Traditional)
[ci skip]
* New translations devise.en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations doorkeeper.en.yml (Chinese Traditional)
[ci skip]
* New translations devise.en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations en.json (Telugu)
[ci skip]
* New translations en.json (Malay)
[ci skip]
* New translations en.json (Hindi)
[ci skip]
* New translations en.json (Latvian)
[ci skip]
* New translations en.json (Estonian)
[ci skip]
* New translations en.json (Kazakh)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[ci skip]
* New translations en.json (Marathi)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.json (Bengali)
[ci skip]
* New translations en.json (Tamil)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Welsh)
[ci skip]
* New translations en.json (Uyghur)
[ci skip]
* New translations en.json (Urdu (Pakistan))
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations en.json (Silesian)
[ci skip]
* New translations en.json (Taigi)
[ci skip]
* New translations en.json (Ido)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Sanskrit)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations en.json (Serbian (Latin))
[ci skip]
* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.json (Asturian)
[ci skip]
* New translations en.json (Kannada)
[ci skip]
* New translations en.json (Cornish)
[ci skip]
* New translations en.json (Sinhala)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Tatar)
[ci skip]
* New translations en.json (Romanian)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations en.json (Afrikaans)
[ci skip]
* New translations en.json (Bulgarian)
[ci skip]
* New translations en.json (Serbian (Cyrillic))
[ci skip]
* New translations en.json (Macedonian)
[ci skip]
* New translations en.json (Slovenian)
[ci skip]
* New translations en.json (Slovak)
[ci skip]
* New translations en.json (Punjabi)
[ci skip]
* New translations en.json (Norwegian)
[ci skip]
* New translations en.json (Georgian)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.json (Standard Moroccan Tamazight)
[ci skip]
* New translations simple_form.en.yml (Scottish Gaelic)
[ci skip]
* New translations en.yml (Scottish Gaelic)
[ci skip]
* New translations activerecord.en.yml (Scottish Gaelic)
[ci skip]
* New translations en.yml (Scottish Gaelic)
[ci skip]
* New translations simple_form.en.yml (Scottish Gaelic)
[ci skip]
* New translations doorkeeper.en.yml (Scottish Gaelic)
[ci skip]
* New translations en.json (Scottish Gaelic)
[ci skip]
* New translations devise.en.yml (Scottish Gaelic)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]
* New translations activerecord.en.yml (Spanish, Argentina)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Argentina)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* i18n-tasks normalize
* yarn manage:translations
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
|
|
* Fix e-mail confirmations API not working correctly
* Fix typo
|
|
* Fix account deletion sometimes failing because of optimistic locks
In some rare occasions[1], deleting accounts would fail with a
`StaleObjectError` exception.
Indeed, account deletion manually sets the `AccountStat` values without
handling cases where the optimistic locking on `AccountStat` would fail.
To my knowledge, with the rewrite of account counters in #15913, the
`DeleteAccountService` is now the only place that changes the counters in
a way that is not atomic.
Since in this specific case, we do not care about the previous values of the
account counters, it appears we don't need locking at all for this table
anymore.
[1]: https://discourse.joinmastodon.org/t/account-cant-be-deleted/3602
* Bump MAX_SUPPORTED_VERSION in maintenance script
|
|
Fixes #16293
|
|
* Add assets from Twemoji 13.1.0
* Update emoji-mart
|
|
|