Age | Commit message (Collapse) | Author |
|
* Clear sessions on password change
* Rename User::clear_sessions to revoke_access for a clearer meaning
* Add reset paassword controller test
* Use User.find instead of User.find_for_authentication for reset password test
* Use redirect and render for better test meaning in reset password
Co-authored-by: Effy Elden <effy@effy.space>
|
|
posts (#21316)
Fixes #21244
|
|
* Change suspension text to mention that a remotely suspended account is not locally-suspended
* Add ability to refresh profile of remotely suspended accounts
|
|
|
|
It looks like a [bug](https://bugs.ruby-lang.org/issues/18633) around
autosplat is [fixed](https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/fbaadd1cfe7fbfd1b904f193f99d7c845a6ed804)
on ruby-3.2.0-rc1 and breaks a test (but not on ruby <= 3.1.3):
```
$ bundle exec rspec ./spec/controllers/api/v1/emails/confirmations_controller_spec.rb:41
:
1) Api::V1::Emails::ConfirmationsController#create with an oauth token from an app that created the account when the account is already confirmed but user changed e-mail and has not confirmed it returns http success
Failure/Error:
def email_changed(user, **)
@resource = user
@instance = Rails.configuration.x.local_domain
return unless @resource.active_for_authentication?
I18n.with_locale(locale) do
mail to: @resource.email, subject: I18n.t('devise.mailer.email_changed.subject')
end
end
ArgumentError:
wrong number of arguments (given 2, expected 1)
# ./app/mailers/user_mailer.rb:51:in `email_changed'
# ./app/models/user.rb:444:in `render_and_send_devise_message'
# ./app/models/user.rb:430:in `block in send_pending_devise_notifications'
# ./app/models/user.rb:429:in `each'
# ./app/models/user.rb:429:in `send_pending_devise_notifications'
# ./spec/controllers/api/v1/emails/confirmations_controller_spec.rb:38:in `block (7 levels) in <top (required)>'
```
|
|
|
|
* Make handle more easily selectable on profile page
* Wrap handle in a span
* Add `user-select: all` to span
* remove whitespace
|
|
translated reply (#22272)
Fixes #22250
|
|
* Add noindex setting to Admin settings Discovery page
* Replace default_noindex i18n
|
|
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Latin))
* New translations en.yml (Serbian (Latin))
* New translations simple_form.en.yml (Serbian (Latin))
* New translations activerecord.en.yml (Serbian (Latin))
* New translations doorkeeper.en.yml (Serbian (Latin))
* New translations devise.en.yml (Serbian (Latin))
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Chinese Traditional)
* New translations en.json (Serbian (Latin))
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Icelandic)
* New translations en.json (Serbian (Latin))
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Latin))
* New translations en.json (Malay)
* New translations en.json (Malay)
* New translations activerecord.en.yml (Malay)
* New translations devise.en.yml (Malay)
* New translations en.yml (Malay)
* New translations en.yml (Arabic)
* New translations en.yml (Greek)
* New translations en.yml (Galician)
* New translations simple_form.en.yml (Malay)
* New translations en.yml (Greek)
* New translations en.yml (Russian)
* New translations en.yml (Belarusian)
* New translations en.yml (Greek)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Greek)
* New translations en.json (Greek)
* New translations en.yml (Greek)
* New translations en.yml (Belarusian)
* New translations doorkeeper.en.yml (Greek)
* New translations en.yml (Greek)
* New translations en.yml (Malay)
* New translations simple_form.en.yml (Malay)
* New translations en.json (Esperanto)
* New translations en.yml (Malay)
* New translations en.yml (Esperanto)
* New translations devise.en.yml (Esperanto)
* New translations en.yml (Vietnamese)
* New translations simple_form.en.yml (Vietnamese)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Latin))
* New translations en.yml (Belarusian)
* New translations en.yml (Vietnamese)
* New translations en.yml (Belarusian)
* New translations en.yml (Kurmanji (Kurdish))
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Latin))
* New translations en.json (Occitan)
* New translations en.json (Czech)
* New translations en.yml (Hebrew)
* New translations doorkeeper.en.yml (Spanish, Argentina)
* New translations en.json (German)
* New translations en.yml (Spanish, Argentina)
* New translations en.json (German)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.json (German)
* New translations en.json (Esperanto)
* New translations en.yml (Esperanto)
* New translations en.yml (Esperanto)
* New translations en.yml (Thai)
* New translations activerecord.en.yml (Scots)
* New translations en.json (Scottish Gaelic)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Latvian)
* New translations en.json (Latvian)
* New translations activerecord.en.yml (Latvian)
* New translations devise.en.yml (Latvian)
* New translations en.yml (Turkish)
* New translations en.yml (Scottish Gaelic)
* New translations en.yml (Danish)
* New translations en.yml (Thai)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Thai)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.yml (German)
* New translations en.yml (German)
* New translations simple_form.en.yml (German)
* New translations en.json (Kurmanji (Kurdish))
* New translations en.json (Kurmanji (Kurdish))
* New translations en.yml (Belarusian)
* New translations en.yml (Kurmanji (Kurdish))
* New translations en.json (Latvian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations simple_form.en.yml (Spanish, Argentina)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Spanish, Argentina)
* New translations en.yml (Persian)
* New translations en.json (Spanish, Mexico)
* New translations en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Danish)
* New translations en.yml (Danish)
* New translations simple_form.en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations en.yml (Danish)
* New translations en.yml (Scots)
* New translations simple_form.en.yml (Scots)
* New translations en.json (Scots)
* New translations devise.en.yml (Scots)
* New translations doorkeeper.en.yml (Scots)
* New translations en.yml (Greek)
* New translations en.yml (Greek)
* New translations en.yml (Belarusian)
* New translations en.json (German)
* New translations en.yml (Belarusian)
* New translations en.yml (Spanish, Argentina)
* New translations en.json (Spanish, Argentina)
* New translations en.json (German)
* New translations en.json (Esperanto)
* New translations en.json (French)
* New translations en.yml (Esperanto)
* New translations en.yml (Belarusian)
* New translations en.json (Esperanto)
* New translations en.yml (Esperanto)
* New translations en.yml (Belarusian)
* New translations devise.en.yml (Esperanto)
* New translations en.json (Slovak)
* New translations en.yml (Slovak)
* New translations activerecord.en.yml (Slovak)
* New translations devise.en.yml (Slovak)
* New translations doorkeeper.en.yml (Slovak)
* New translations en.yml (Belarusian)
* New translations en.yml (Slovak)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Lithuanian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.json (Esperanto)
* New translations en.json (Vietnamese)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.yml (Latvian)
* New translations en.yml (Belarusian)
* New translations en.json (Welsh)
* New translations en.yml (Welsh)
* New translations simple_form.en.yml (Welsh)
* New translations activerecord.en.yml (Welsh)
* New translations devise.en.yml (Welsh)
* New translations doorkeeper.en.yml (Welsh)
* New translations en.json (Welsh)
* New translations en.json (Welsh)
* New translations en.yml (Welsh)
* New translations en.yml (Hebrew)
* New translations en.yml (Welsh)
* New translations en.yml (Hebrew)
* New translations en.yml (Russian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (Ukrainian)
* New translations en.json (Ukrainian)
* New translations en.json (Chinese Simplified)
* New translations en.json (Slovak)
* New translations en.json (Slovak)
* New translations en.yml (Slovak)
* New translations en.yml (Belarusian)
* normalize
* New translations en.yml (Belarusian)
* normalize
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
|
|
registrations (#22127)
|
|
|
|
* Fix 500 error when trying to migrate to an invalid address
* Add tests
|
|
* Fix hidden overflow on interaction modal
* only update overflow y
|
|
|
|
mobile (#22060)
Fixes #20840
|
|
* Log admin approve and reject account
* Add unit tests for approve and reject logging
|
|
* Fix trying to fetch posts from other users when fetching featured posts
* Rate-limit discovery of new subdomains
* Put a limit on recursively discovering new accounts
|
|
Fixes #21965
|
|
|
|
|
|
* New translations doorkeeper.en.yml (Esperanto)
* New translations activerecord.en.yml (Spanish)
* New translations activerecord.en.yml (Esperanto)
* New translations doorkeeper.en.yml (Spanish)
* New translations devise.en.yml (Spanish)
* New translations devise.en.yml (Esperanto)
* New translations en.json (Spanish)
* New translations en.yml (Danish)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Faroese)
* New translations en.yml (Faroese)
* New translations en.json (German)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Bulgarian)
* New translations en.json (German)
* New translations en.yml (Bulgarian)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations en.json (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.json (Czech)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Serbian (Cyrillic))
* New translations simple_form.en.yml (Faroese)
* New translations devise.en.yml (Catalan)
* New translations en.yml (German)
* New translations en.json (Bulgarian)
* New translations en.json (German)
* New translations en.json (Catalan)
* New translations en.yml (Catalan)
* New translations en.json (Danish)
* New translations en.json (Ukrainian)
* New translations en.json (Galician)
* New translations doorkeeper.en.yml (Catalan)
* New translations simple_form.en.yml (German)
* New translations en.json (Danish)
* New translations en.yml (English, United Kingdom)
* New translations simple_form.en.yml (Faroese)
* New translations en.json (Danish)
* New translations en.yml (Japanese)
* New translations en.yml (German)
* New translations en.json (Urdu (Pakistan))
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (German)
* New translations en.json (Urdu (Pakistan))
* New translations simple_form.en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.json (Scots)
* New translations activerecord.en.yml (Scots)
* New translations en.json (Finnish)
* New translations en.json (Finnish)
* New translations en.json (Asturian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations activerecord.en.yml (Asturian)
* New translations devise.en.yml (Asturian)
* New translations doorkeeper.en.yml (Asturian)
* New translations en.yml (Belarusian)
* New translations en.json (Romanian)
* New translations en.json (Galician)
* New translations en.yml (Galician)
* New translations doorkeeper.en.yml (Romanian)
* New translations doorkeeper.en.yml (Galician)
* New translations activerecord.en.yml (Romanian)
* New translations en.yml (Russian)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations devise.en.yml (Estonian)
* New translations en.json (Czech)
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Serbian (Cyrillic))
* New translations en.json (Galician)
* New translations en.yml (Galician)
* New translations en.json (Breton)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations simple_form.en.yml (Galician)
* New translations devise.en.yml (Italian)
* New translations en.json (Bulgarian)
* New translations en.yml (Bulgarian)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations devise.en.yml (Italian)
* New translations en.json (Serbian (Cyrillic))
* New translations doorkeeper.en.yml (Italian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Chinese Traditional, Hong Kong)
* New translations en.yml (Chinese Traditional, Hong Kong)
* New translations en.json (Serbian (Latin))
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations doorkeeper.en.yml (Italian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Asturian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations en.json (Thai)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.yml (Thai)
* New translations en.yml (Czech)
* New translations en.json (Czech)
* New translations simple_form.en.yml (Czech)
* New translations doorkeeper.en.yml (Czech)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (English, United Kingdom)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.yml (German)
* New translations en.json (Russian)
* New translations en.yml (Icelandic)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (Esperanto)
* New translations en.yml (Esperanto)
* New translations simple_form.en.yml (Esperanto)
* New translations en.yml (Thai)
* New translations en.json (Esperanto)
* New translations en.yml (Thai)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (Icelandic)
* New translations en.yml (Icelandic)
* New translations simple_form.en.yml (Icelandic)
* New translations doorkeeper.en.yml (Icelandic)
* New translations en.yml (Belarusian)
* New translations activerecord.en.yml (Icelandic)
* New translations devise.en.yml (Icelandic)
* New translations en.yml (Thai)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.yml (Belarusian)
* New translations en.json (Bulgarian)
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations en.json (Ukrainian)
* New translations en.yml (Estonian)
* New translations en.json (Esperanto)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Persian)
* New translations en.yml (Belarusian)
* New translations en.json (Esperanto)
* New translations en.json (Greek)
* New translations en.json (Persian)
* New translations en.json (Scots)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.json (Finnish)
* New translations en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations devise.en.yml (German)
* New translations simple_form.en.yml (German)
* New translations en.yml (Finnish)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.json (Spanish)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Icelandic)
* New translations en.yml (German)
* New translations en.yml (Ukrainian)
* New translations en.json (Spanish, Mexico)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Spanish, Mexico)
* New translations activerecord.en.yml (Spanish, Mexico)
* New translations en.json (German)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.json (Korean)
* New translations en.json (Scottish Gaelic)
* New translations en.yml (Scottish Gaelic)
* New translations en.yml (Thai)
* New translations en.yml (Japanese)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Estonian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Italian)
* New translations en.yml (Italian)
* New translations en.json (Kurmanji (Kurdish))
* New translations en.yml (Spanish)
* New translations en.yml (Spanish, Mexico)
* New translations en.yml (Latvian)
* New translations simple_form.en.yml (Latvian)
* New translations en.yml (Belarusian)
* New translations en.json (Serbian (Cyrillic))
* New translations simple_form.en.yml (Serbian (Cyrillic))
* normalize
* New translations en.json (German)
* New translations en.json (Serbian (Cyrillic))
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
|
|
/admin/instances?availability=failing remains wholly unefficient
|
|
|
|
This keeps the same design that exists currently, but makes "Trending
now" into a link to the Hashtags section of "Explore".
Resolves #21758.
|
|
(#21303)
Fixes #21278, #21021
|
|
Fixes #21058
Regression from #18641
|
|
|
|
|
|
They are currently not used for anything and represent more than half of the
payload size.
|
|
|
|
query - improve performance (#21487)
* refactor(statuses_vacuum): remove dead code - unused
Method is not called inside class and private.
Clean up dead code.
* refactor(statuses_vacuum): make retention_period present test explicit
This private method only hides functionality.
It is best practice to be as explicit as possible.
* refactor(statuses_vacuum): improve query performance
- fix statuses_scope having sub-select for Account.remote scope by
`joins(:account).merge(Account.remote)`
- fix statuses_scope unnecessary use of `Status.arel_table[:id].lt`
because it is inexplicit, bad practice and even slower than normal
`.where('statuses.id < ?'`
- fix statuses_scope remove select(:id, :visibility) for having reusable
active record query batches (no re queries)
- fix vacuum_statuses! to use in_batches instead of find_in_batches,
because in_batches delivers a full blown active record query result,
in stead of an array - no requeries necessary
- send(:unlink_from_conversations) not to perform another db query, but
reuse the in_batches result instead.
- remove now obsolete remove_from_account_conversations method
- remove_from_search_index uses array of ids, instead of mapping
the ids from an array - this should be more efficient
- use the in_batches scope to call delete_all, instead of running
another db query for this - because it is again more efficient
- add TODO comment for calling models private method with send
* refactor(status): simplify unlink_from_conversations
- add `has_many through:` relation mentioned_accounts
- use model scope local instead of method call `Status#local?`
- more readable add account to inbox_owners when account.local?
* refactor(status): searchable_by way less sub selects
These queries all included a sub-select. Doing the same with a joins
should be more efficient.
Since this method does 5 such queries, this should be significant,
since it technically halves the query count.
This is how it was:
```ruby
[3] pry(main)> Status.first.mentions.where(account: Account.local, silent: false).explain
Status Load (1.6ms) SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL ORDER BY "statuses"."id" DESC LIMIT $1 [["LIMIT", 1]]
Mention Load (1.5ms) SELECT "mentions".* FROM "mentions" WHERE "mentions"."status_id" = $1 AND "mentions"."account_id" IN (SELECT "accounts"."id" FROM "accounts" WHERE "accounts"."domain" IS NULL) AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
=> EXPLAIN for: SELECT "mentions".* FROM "mentions" WHERE "mentions"."status_id" = $1 AND "mentions"."account_id" IN (SELECT "accounts"."id" FROM "accounts" WHERE "accounts"."domain" IS NULL) AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=0.15..23.08 rows=1 width=41)
-> Seq Scan on accounts (cost=0.00..10.90 rows=1 width=8)
Filter: (domain IS NULL)
-> Index Scan using index_mentions_on_account_id_and_status_id on mentions (cost=0.15..8.17 rows=1 width=41)
Index Cond: ((account_id = accounts.id) AND (status_id = '109382923142288414'::bigint))
Filter: (NOT silent)
(6 rows)
```
This is how it is with this change:
```ruby
[4] pry(main)> Status.first.mentions.joins(:account).merge(Account.local).active.explain
Status Load (1.7ms) SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL ORDER BY "statuses"."id" DESC LIMIT $1 [["LIMIT", 1]]
Mention Load (0.7ms) SELECT "mentions".* FROM "mentions" INNER JOIN "accounts" ON "accounts"."id" = "mentions"."account_id" WHERE "mentions"."status_id" = $1 AND "accounts"."domain" IS NULL AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
=> EXPLAIN for: SELECT "mentions".* FROM "mentions" INNER JOIN "accounts" ON "accounts"."id" = "mentions"."account_id" WHERE "mentions"."status_id" = $1 AND "accounts"."domain" IS NULL AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=0.15..23.08 rows=1 width=41)
-> Seq Scan on accounts (cost=0.00..10.90 rows=1 width=8)
Filter: (domain IS NULL)
-> Index Scan using index_mentions_on_account_id_and_status_id on mentions (cost=0.15..8.17 rows=1 width=41)
Index Cond: ((account_id = accounts.id) AND (status_id = '109382923142288414'::bigint))
Filter: (NOT silent)
(6 rows)
```
|
|
* Fix attachments of edited statuses not being fetched
* Fix tests
|
|
|
|
When a poll is edited, we reset the poll and remove all previous
votes. However, prior to this commit, the voter count on the poll
was not reset. This leads to incorrect percentages being shown in
poll results.
Fixes #21696
|
|
|
|
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations devise.en.yml (Finnish)
* New translations en.json (Norwegian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Esperanto)
* New translations en.yml (Scots)
* New translations en.yml (Italian)
* New translations en.json (Welsh)
* New translations en.yml (Welsh)
* New translations en.yml (Esperanto)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (German)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Belarusian)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Estonian)
* New translations en.json (German)
* New translations simple_form.en.yml (German)
* New translations en.yml (Esperanto)
* New translations en.yml (Welsh)
* New translations en.yml (Estonian)
* New translations en.json (Estonian)
* New translations en.yml (Italian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Welsh)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Welsh)
* New translations activerecord.en.yml (Welsh)
* New translations devise.en.yml (Welsh)
* New translations en.yml (Faroese)
* New translations en.yml (Scots)
* New translations simple_form.en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Hungarian)
* New translations en.json (Bengali)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Welsh)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (German)
* New translations en.yml (Russian)
* New translations en.yml (Estonian)
* New translations en.json (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.json (Indonesian)
* New translations en.yml (Indonesian)
* New translations simple_form.en.yml (Serbian (Latin))
* New translations en.json (Belarusian)
* New translations en.yml (Belarusian)
* New translations devise.en.yml (Serbian (Latin))
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Portuguese, Brazilian)
* New translations simple_form.en.yml (German)
* New translations doorkeeper.en.yml (German)
* New translations devise.en.yml (German)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.json (Spanish)
* New translations en.json (Welsh)
* New translations en.yml (Welsh)
* New translations doorkeeper.en.yml (Welsh)
* New translations en.yml (Belarusian)
* New translations en.json (German)
* New translations en.yml (Welsh)
* New translations en.json (Asturian)
* New translations simple_form.en.yml (German)
* New translations en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations en.json (Asturian)
* New translations en.yml (Asturian)
* New translations en.json (French, Quebec)
* New translations en.json (Faroese)
* New translations en.yml (Faroese)
* New translations en.json (Belarusian)
* New translations en.yml (Belarusian)
* New translations devise.en.yml (Asturian)
* New translations en.json (Spanish)
* New translations en.json (French, Quebec)
* New translations en.yml (Faroese)
* New translations en.yml (Scots)
* New translations en.json (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (French, Quebec)
* New translations en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations doorkeeper.en.yml (Asturian)
* New translations en.json (Asturian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations en.json (Asturian)
* New translations en.yml (Faroese)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations simple_form.en.yml (Belarusian)
* New translations devise.en.yml (Serbian (Latin))
* New translations en.yml (Japanese)
* New translations en.json (Serbian (Latin))
* New translations en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Estonian)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations devise.en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations devise.en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Catalan)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Catalan)
* New translations doorkeeper.en.yml (Catalan)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations activerecord.en.yml (Serbian (Cyrillic))
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations devise.en.yml (German)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations doorkeeper.en.yml (Estonian)
* New translations en.yml (Romanian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Estonian)
* New translations simple_form.en.yml (Bulgarian)
* New translations simple_form.en.yml (German)
* New translations activerecord.en.yml (Serbian (Cyrillic))
* New translations en.yml (Scots)
* New translations en.yml (Bulgarian)
* New translations simple_form.en.yml (Bulgarian)
* New translations en.yml (Asturian)
* New translations devise.en.yml (Asturian)
* New translations en.yml (Scots)
* New translations simple_form.en.yml (Hebrew)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations en.json (Ukrainian)
* New translations doorkeeper.en.yml (Ukrainian)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations en.yml (Czech)
* New translations en.json (Czech)
* New translations en.yml (Bulgarian)
* New translations en.json (Catalan)
* New translations en.yml (Catalan)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations en.json (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (Ukrainian)
* New translations simple_form.en.yml (Dutch)
* New translations en.json (Ukrainian)
* New translations en.yml (Esperanto)
* New translations simple_form.en.yml (Ukrainian)
* New translations simple_form.en.yml (Esperanto)
* New translations en.yml (Faroese)
* New translations en.yml (Faroese)
* New translations en.yml (Scots)
* New translations en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Czech)
* New translations en.json (Malayalam)
* New translations en.yml (Scots)
* New translations en.json (Czech)
* New translations en.json (Hindi)
* New translations en.json (Malayalam)
* New translations activerecord.en.yml (Serbian (Latin))
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Latin))
* New translations en.json (Czech)
* New translations en.json (Serbian (Cyrillic))
* New translations simple_form.en.yml (Asturian)
* New translations en.yml (Scots)
* New translations en.json (Czech)
* New translations en.json (Frisian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations devise.en.yml (Frisian)
* New translations en.json (Czech)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations en.yml (Ukrainian)
* New translations en.yml (Bulgarian)
* New translations en.json (Italian)
* New translations en.json (Ukrainian)
* New translations en.json (Spanish, Mexico)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Bulgarian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations devise.en.yml (Ukrainian)
* New translations en.yml (Ukrainian)
* New translations en.json (Italian)
* New translations en.json (Ukrainian)
* New translations en.json (Spanish, Mexico)
* New translations simple_form.en.yml (Ukrainian)
* New translations activerecord.en.yml (Italian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* Run `yarn manage:translations`
* Run `bundle exec i18n-tasks normalize`
* Add `app/javascript/mastodon/locales/whitelist_be.json`
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
|
|
Fixes regression from #20860
|
|
* Don't allow URLs that contain non-normalized paths to be verified
This stops things like https://example.com/otheruser/../realuser where
"/otheruser" appears to be the verified URL, but the actual URL being
verified is "/realuser" due to the "/../".
Also fix a test to use 'https', so it is testing the right thing, now
that since #20304 https is required.
* missing do
|
|
|
|
|
|
* New translations en.json (German)
* New translations en.json (Italian)
* New translations en.yml (Kurmanji (Kurdish))
* New translations simple_form.en.yml (German)
* New translations doorkeeper.en.yml (Kurmanji (Kurdish))
* New translations en.json (Dutch)
* New translations en.json (Esperanto)
* New translations en.json (Dutch)
* New translations en.yml (Portuguese, Brazilian)
* New translations en.json (Faroese)
* New translations en.json (Esperanto)
* New translations en.json (Irish)
* New translations simple_form.en.yml (Esperanto)
* New translations doorkeeper.en.yml (Esperanto)
* New translations en.json (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.json (Scots)
* New translations simple_form.en.yml (Esperanto)
* New translations doorkeeper.en.yml (Esperanto)
* New translations en.json (Scots)
* New translations en.yml (Korean)
* New translations simple_form.en.yml (Korean)
* New translations en.yml (Esperanto)
* New translations en.yml (Chinese Simplified)
* New translations en.yml (Chinese Simplified)
* New translations en.json (Chinese Simplified)
* New translations simple_form.en.yml (Chinese Simplified)
* New translations doorkeeper.en.yml (Chinese Simplified)
* New translations en.json (Lithuanian)
* New translations en.yml (Galician)
* New translations en.json (Icelandic)
* New translations en.yml (Galician)
* New translations en.json (Icelandic)
* New translations en.yml (Thai)
* New translations en.yml (Slovenian)
* New translations en.yml (Lithuanian)
* New translations en.yml (Macedonian)
* New translations en.yml (Dutch)
* New translations en.yml (Punjabi)
* New translations en.yml (Polish)
* New translations en.yml (Portuguese)
* New translations en.yml (Russian)
* New translations en.yml (Slovak)
* New translations en.yml (Serbian (Cyrillic))
* New translations en.yml (Georgian)
* New translations en.yml (Swedish)
* New translations en.yml (Chinese Traditional)
* New translations en.yml (Urdu (Pakistan))
* New translations en.yml (Vietnamese)
* New translations en.yml (Galician)
* New translations en.yml (Icelandic)
* New translations en.yml (Portuguese, Brazilian)
* New translations en.yml (Indonesian)
* New translations en.yml (Persian)
* New translations en.yml (Tamil)
* New translations en.yml (Korean)
* New translations en.yml (Japanese)
* New translations en.yml (German)
* New translations en.yml (Arabic)
* New translations en.yml (Czech)
* New translations en.yml (Chinese Simplified)
* New translations en.yml (Ido)
* New translations en.yml (Spanish)
* New translations en.yml (Turkish)
* New translations en.yml (Albanian)
* New translations en.yml (Ukrainian)
* New translations en.yml (Romanian)
* New translations en.yml (French)
* New translations en.yml (Afrikaans)
* New translations en.yml (Bulgarian)
* New translations en.yml (Italian)
* New translations en.yml (Catalan)
* New translations en.yml (Danish)
* New translations en.yml (Frisian)
* New translations en.yml (Basque)
* New translations en.yml (Finnish)
* New translations en.yml (Hebrew)
* New translations en.yml (Hungarian)
* New translations en.yml (Armenian)
* New translations en.yml (Spanish, Argentina)
* New translations en.yml (Spanish, Mexico)
* New translations en.yml (Silesian)
* New translations en.yml (Serbian (Latin))
* New translations en.yml (Kurmanji (Kurdish))
* New translations en.yml (Sorani (Kurdish))
* New translations en.yml (Corsican)
* New translations en.yml (Sardinian)
* New translations en.yml (Sanskrit)
* New translations en.yml (Taigi)
* New translations en.yml (Standard Moroccan Tamazight)
* New translations en.yml (Asturian)
* New translations en.yml (Burmese)
* New translations en.yml (Igbo)
* New translations en.yml (French, Quebec)
* New translations en.json (Faroese)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Occitan)
* New translations en.yml (Scottish Gaelic)
* New translations en.yml (Bengali)
* New translations en.yml (Telugu)
* New translations en.yml (Marathi)
* New translations en.yml (Croatian)
* New translations en.yml (Norwegian Nynorsk)
* New translations en.yml (Kazakh)
* New translations en.yml (Estonian)
* New translations en.yml (Latvian)
* New translations en.yml (Hindi)
* New translations en.yml (English, United Kingdom)
* New translations en.yml (Kannada)
* New translations en.yml (Welsh)
* New translations en.yml (Uyghur)
* New translations en.yml (Chinese Traditional, Hong Kong)
* New translations en.yml (Tatar)
* New translations en.yml (Malayalam)
* New translations en.yml (Sinhala)
* New translations en.yml (Cornish)
* New translations en.yml (Thai)
* New translations en.yml (Portuguese)
* New translations en.yml (Georgian)
* New translations en.yml (Korean)
* New translations en.yml (Lithuanian)
* New translations en.yml (Dutch)
* New translations simple_form.en.yml (Dutch)
* New translations en.yml (Norwegian)
* New translations en.yml (Polish)
* New translations en.yml (Russian)
* New translations en.yml (Italian)
* New translations en.yml (Slovak)
* New translations en.yml (Slovenian)
* New translations en.yml (Serbian (Cyrillic))
* New translations en.yml (Swedish)
* New translations en.yml (Chinese Traditional)
* New translations en.yml (Vietnamese)
* New translations en.yml (Galician)
* New translations en.yml (Icelandic)
* New translations en.yml (Portuguese, Brazilian)
* New translations en.yml (Japanese)
* New translations en.yml (Armenian)
* New translations en.json (Hebrew)
* New translations en.yml (French)
* New translations en.yml (German)
* New translations en.yml (Czech)
* New translations en.yml (Chinese Simplified)
* New translations en.yml (Spanish)
* New translations en.yml (Turkish)
* New translations simple_form.en.yml (Czech)
* New translations en.yml (Albanian)
* New translations en.yml (Ukrainian)
* New translations en.yml (Afrikaans)
* New translations en.yml (Hungarian)
* New translations en.yml (Arabic)
* New translations en.yml (Bulgarian)
* New translations en.yml (Catalan)
* New translations en.yml (Danish)
* New translations en.yml (Greek)
* New translations en.yml (Basque)
* New translations en.yml (Finnish)
* New translations en.yml (Irish)
* New translations en.yml (Hebrew)
* New translations en.yml (Indonesian)
* New translations en.yml (Ido)
* New translations en.yml (Persian)
* New translations simple_form.en.yml (Polish)
* New translations en.yml (Breton)
* New translations en.yml (Sinhala)
* New translations en.yml (Scottish Gaelic)
* New translations simple_form.en.yml (Sinhala)
* New translations simple_form.en.yml (Vietnamese)
* New translations simple_form.en.yml (Romanian)
* New translations simple_form.en.yml (French)
* New translations simple_form.en.yml (Spanish)
* New translations simple_form.en.yml (Afrikaans)
* New translations simple_form.en.yml (Arabic)
* New translations simple_form.en.yml (Bulgarian)
* New translations en.yml (Chinese Traditional, Hong Kong)
* New translations en.yml (Spanish, Argentina)
* New translations en.yml (Spanish, Mexico)
* New translations en.yml (Norwegian Nynorsk)
* New translations en.yml (Kazakh)
* New translations en.yml (Estonian)
* New translations en.yml (Latvian)
* New translations simple_form.en.yml (Catalan)
* New translations en.yml (Esperanto)
* New translations en.yml (Welsh)
* New translations en.yml (Malay)
* New translations en.yml (Corsican)
* New translations en.yml (Occitan)
* New translations en.yml (Sardinian)
* New translations en.yml (Serbian (Latin))
* New translations en.yml (Kurmanji (Kurdish))
* New translations en.yml (Kabyle)
* New translations en.yml (Sorani (Kurdish))
* New translations simple_form.en.yml (Bengali)
* New translations simple_form.en.yml (Galician)
* New translations simple_form.en.yml (Icelandic)
* New translations simple_form.en.yml (Portuguese, Brazilian)
* New translations simple_form.en.yml (Indonesian)
* New translations simple_form.en.yml (Persian)
* New translations simple_form.en.yml (Tamil)
* New translations simple_form.en.yml (Spanish, Argentina)
* New translations simple_form.en.yml (Spanish, Mexico)
* New translations simple_form.en.yml (Ukrainian)
* New translations simple_form.en.yml (Croatian)
* New translations simple_form.en.yml (Norwegian Nynorsk)
* New translations simple_form.en.yml (Kazakh)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Latvian)
* New translations simple_form.en.yml (English, United Kingdom)
* New translations simple_form.en.yml (Chinese Traditional)
* New translations simple_form.en.yml (Turkish)
* New translations simple_form.en.yml (Georgian)
* New translations simple_form.en.yml (Frisian)
* New translations simple_form.en.yml (Basque)
* New translations simple_form.en.yml (Finnish)
* New translations simple_form.en.yml (Hebrew)
* New translations simple_form.en.yml (Hungarian)
* New translations simple_form.en.yml (Armenian)
* New translations simple_form.en.yml (Italian)
* New translations simple_form.en.yml (Japanese)
* New translations simple_form.en.yml (Swedish)
* New translations simple_form.en.yml (Portuguese)
* New translations simple_form.en.yml (Slovak)
* New translations simple_form.en.yml (Slovenian)
* New translations simple_form.en.yml (Albanian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (French, Quebec)
* New translations en.json (Faroese)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Scottish Gaelic)
* New translations simple_form.en.yml (Malayalam)
* New translations simple_form.en.yml (Tatar)
* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
* New translations simple_form.en.yml (Standard Moroccan Tamazight)
* New translations simple_form.en.yml (Ido)
* New translations simple_form.en.yml (Sardinian)
* New translations simple_form.en.yml (Corsican)
* New translations simple_form.en.yml (Sorani (Kurdish))
* New translations simple_form.en.yml (Serbian (Latin))
* New translations simple_form.en.yml (Occitan)
* New translations simple_form.en.yml (Asturian)
* New translations en.yml (Chinese Simplified)
* New translations en.yml (Hebrew)
* New translations en.yml (Korean)
* New translations en.yml (Dutch)
* New translations en.yml (Slovenian)
* New translations en.yml (Chinese Traditional)
* New translations en.yml (Kurmanji (Kurdish))
* normalize
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
|
|
* Add jstest for node ordering in emojify
* Remove use of DOMParser in front-end emoji rewriting code
|
|
* Fix style for hashes
Make the style for hashes consistent.
* New style
More consistency
|
|
additional fixes (#20597)
* Allow import/export of instance-level domain blocks/allows (#1754)
* Allow import/export of instance-level domain blocks/allows.
Fixes #15095
* Pacify circleci
* Address simple code review feedback
* Add headers to exported CSV
* Extract common import/export functionality to
AdminExportControllerConcern
* Add additional fields to instance-blocked domain export
* Address review feedback
* Split instance domain block/allow import/export into separate pages/controllers
* Address code review feedback
* Pacify DeepSource
* Work around Paperclip::HasAttachmentFile for Rails 6
* Fix deprecated API warning in export tests
* Remove after_commit workaround
(cherry picked from commit 94e98864e39c010635e839fea984f2b4893bef1a)
* Add confirmation page when importing blocked domains (#1773)
* Move glitch-soc-specific strings to glitch-soc-specific locale files
* Add confirmation page when importing blocked domains
(cherry picked from commit b91196f4b73fff91997b8077619ae25b6d04a59e)
* Fix authorization check in domain blocks controller
(cherry picked from commit 75279377583c6e2aa04cc8d7380c593979630b38)
* Fix error strings for domain blocks and email-domain blocks
Corrected issue with non-error message used for Mastodon:NotPermittedError in Domain Blocks
Corrected issue Domain Blocks using the Email Domain Blocks message on ActionContoller::ParameterMissing
Corrected issue with Email Domain Blocks using the not_permitted string from "custom emojii's"
* Ran i18n-tasks normalize to address test failure
* Removed unused admin.export_domain_blocks.not_permitted string
Removing unused string as indicated by Check i18n
* Fix tests
(cherry picked from commit 9094c2f52c24e1c00b594e7c11cd00e4a07eb431)
* Fix domain block export not exporting blocks with only media rejection
(cherry picked from commit 26ff48ee48a5c03a2a4b0bd03fd322529e6bd960)
* Fix various issues with domain block import
- stop using Paperclip for processing domain allow/block imports
- stop leaving temporary files
- better error handling
- assume CSV files are UTF-8-encoded
(cherry picked from commit cad824d8f501b95377e4f0a957e5a00d517a1902)
Co-authored-by: Levi Bard <taktaktaktaktaktaktaktaktaktak@gmail.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
|
|
Before this change, the following error would cause VerifyAccountLinksWorker to fail:
NoMethodError: undefined method `downcase' for nil:NilClass
[PROJECT_ROOT]/app/services/verify_link_service.rb:31 :in `block in link_back_present?`
|
|
Fixes #20770
|
|
|
|
|
|
users (#20774)
Fixes #20550
|