Commit Graph

57191 Commits

Author SHA1 Message Date
dependabot[bot] 22457bddb1
Build(deps): Bump net-imap from 0.5.2 to 0.5.3 (#30425)
Bumps [net-imap](https://github.com/ruby/net-imap) from 0.5.2 to 0.5.3.
- [Release notes](https://github.com/ruby/net-imap/releases)
- [Commits](https://github.com/ruby/net-imap/compare/v0.5.2...v0.5.3)

---
updated-dependencies:
- dependency-name: net-imap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-22 23:01:46 +01:00
dependabot[bot] fb0a883d49
Build(deps): Bump csv from 3.3.1 to 3.3.2 (#30421)
Bumps [csv](https://github.com/ruby/csv) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/ruby/csv/releases)
- [Changelog](https://github.com/ruby/csv/blob/master/NEWS.md)
- [Commits](https://github.com/ruby/csv/compare/v3.3.1...v3.3.2)

---
updated-dependencies:
- dependency-name: csv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-22 22:59:18 +01:00
dependabot[bot] ad18ee8984
Build(deps): Bump ace-builds from 1.37.0 to 1.37.1 (#30420)
Bumps [ace-builds](https://github.com/ajaxorg/ace-builds) from 1.37.0 to 1.37.1.
- [Release notes](https://github.com/ajaxorg/ace-builds/releases)
- [Changelog](https://github.com/ajaxorg/ace-builds/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ajaxorg/ace-builds/compare/v1.37.0...v1.37.1)

---
updated-dependencies:
- dependency-name: ace-builds
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-22 22:59:10 +01:00
dependabot[bot] c6ccc756fe
Build(deps-dev): Bump @embroider/webpack in the embroider group (#30416)
Bumps the embroider group with 1 update: [@embroider/webpack](https://github.com/embroider-build/embroider/tree/HEAD/packages/webpack).


Updates `@embroider/webpack` from 4.0.8 to 4.0.9
- [Release notes](https://github.com/embroider-build/embroider/releases)
- [Changelog](https://github.com/embroider-build/embroider/blob/main/CHANGELOG.md)
- [Commits](https://github.com/embroider-build/embroider/commits/HEAD/packages/webpack)

---
updated-dependencies:
- dependency-name: "@embroider/webpack"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: embroider
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-22 22:33:02 +01:00
Sam 3fd3a76422
FIX: we introduced a Jobs::UserEmail which broke consistency checks (#30409)
Fix ensures all classes are rooted and there is a spec that will catch
failures next time
2024-12-22 21:33:47 +11:00
Régis Hanol 268d4d4fb9
FIX: more... should not show when there are no visible links (#30405)
When lurking on a Discourse as anonymous, if the sidebar is enabled, and a section contains only secondary links that are not visible to anonymous users, we should not display the "more..." button.

Otherwise it feels broken because clicking on it does nothing, since there are no "visible" links to be shown.

Internal ref t/144716
2024-12-21 01:06:46 +01:00
Joffrey JAFFEUX f392259e3f
FIX: correclty allows to untoggle a fk toggle (#30404) 2024-12-21 00:55:39 +01:00
Régis Hanol ebb6f1c2d2
FIX: better handle race condition when a channel is deleted (#30403)
NOTE: I wasn't able to reproduce locally, so that's my best guess as to what happens based on the production error logs.
It's also the reason why I haven't changed/added any tests...

Earlier today, we started seeing a growing number of errors in the `register_presence_channel_prefix("chat-reply")` handler of the chat plugin.
It was all coming from a Discourse where they make a heavy use of chat channels. They create and **delete** category channels regularly.

If a user has a thread in one of the channels that just got deleted, the client application might not be aware (just yet), asks the server to be connected to the "presence" bus of that channel, and BOOOM.

The following [line](fa0ad0306c/plugins/chat/plugin.rb (L325)) explodes because `chat_channel` is `nil`

```ruby
config.allowed_group_ids = chat_channel.allowed_group_ids
```

And why is `chat_channel` `nil`? Because when we [do](fa0ad0306c/plugins/chat/plugin.rb (L319))

```ruby
chat_channel = Chat::Thread.find_by!(id: thread_id, channel_id: channel_id).channel
```

The thread is still in the database, but the associated channel has been deleted.

A proper fix would most likely be to delete all the `Chat::Thread` associated to a deleted `Chat::Channel` but this might have more technical & business implications.
2024-12-21 00:49:21 +01:00
Kris fa0ad0306c
UX: improve link copy status transition (#30401) 2024-12-20 14:12:13 -05:00
marstall 3e8e861103
DEV: return full name in /notifications.json (#30335)
* wip: return full name in /notifications.json

* DEV: test for full name

* DEV: add test for enable_names=true

* DEV: add notification6, cleanup

* DEV: fix tests
2024-12-20 11:43:13 -05:00
Jarek Radosz d18bf67868
DEV: Remove unnecessary optional chaining operators (#30400) 2024-12-20 16:48:13 +01:00
Jarek Radosz 05dca4c31e
DEV: Remove `_consoleDebug` (#30399)
`this.siteSettings` was always undefined anyway
2024-12-20 16:48:02 +01:00
Joffrey JAFFEUX 6e82a63d56
DEV: reintroduces category-notifications-button.js (#30398)
This file has been incorrectly removed in 41df705188 while it's still being used by plugins (https://github.com/discourse/discourse-circles).
2024-12-20 16:08:21 +01:00
Jarek Radosz f612e3ba17
DEV: Downgrade highlightjs to 11.10.0 (#30397)
due to rustlang regression

See: https://github.com/discourse/discourse/pull/30288#issuecomment-2556373204
2024-12-20 14:28:24 +01:00
Jarek Radosz a70e7a5cdd
DEV: Allow adding classes to ConditionalLoadingSpinner (#30386) 2024-12-20 14:15:47 +01:00
Keegan George 380910aedd
DEV: Cleanup todos from codebase (#30394)
This PR involves cleaning up the codebase from my (@keegangeorge's) todos. 

In particular:
- Remove Form Template related todos (these are no longer in the roadmap)
- Remove old left-over AI summarization related code after moving to AI (https://github.com/discourse/discourse-ai/pull/658)
- Update one form template related spec
2024-12-19 18:22:33 -08:00
Martin Brennan fa9606016c
UX: Site setting filter background inconsistencies (#30393)
Followup 203f93bcaf

This commit makes sure the background for all the admin
site settings filters (including the filter input and
override checkbox) is consistent no matter what the theme,
as it currently changes based on theme.
2024-12-20 10:51:35 +10:00
Sam c315e26485
FIX: handle more thread pool edge cases (#30392)
* Split `shutdown` into two separate methods for better control:
  - `shutdown` - signals threads to stop accepting new work
  - `wait_for_termination` - waits for threads to finish (with optional timeout)

* Add tracking of busy threads via `@busy_threads` Set
* Make idle_time parameter optional with 30-second default
* Improve thread spawning logic:
  - Spawn initial thread immediately when work is posted
  - Spawn additional threads when all threads are busy and work is queued
* Fix race condition in work distribution
* Add busy thread count to stats output
* Add test coverage for zero min_threads configuration

This commit makes the ThreadPool more reliable, easier to use, and adds 
better visibility into its internal state.

---------

Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com>
2024-12-20 11:50:00 +11:00
Martin Brennan b3fa335c7d
UX: Admin sidebar link changes (#30365)
Make all links in the admin sidebar follow https://meta.discourse.org/t/formatting-text-in-discourse-documentation-and-uis/324637

Remove the following links, and add keywords to their root links.
Email logs section is removed entirely.

* Email Settings > Preview Summary
* Email Logs > Sent
* Email Logs > Skipped
* Email Logs > Bounced
* Email Logs > Received
* Email Logs > Rejected
* Security > Error Logs
* Security > Screened Emails
* Security > Screened IPs
* Security > Screened URLs
* Security > Search Logs
* Advanced > Webhooks
2024-12-20 09:58:42 +10:00
dependabot[bot] ec8bda943a
Build(deps): Bump erubi from 1.13.0 to 1.13.1 (#30390)
Bumps [erubi](https://github.com/jeremyevans/erubi) from 1.13.0 to 1.13.1.
- [Changelog](https://github.com/jeremyevans/erubi/blob/master/CHANGELOG)
- [Commits](https://github.com/jeremyevans/erubi/compare/1.13.0...1.13.1)

---
updated-dependencies:
- dependency-name: erubi
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 23:47:57 +01:00
dependabot[bot] 9033231187
Build(deps-dev): Bump puppeteer-core from 23.11.0 to 23.11.1 (#30388)
Bumps [puppeteer-core](https://github.com/puppeteer/puppeteer) from 23.11.0 to 23.11.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v23.11.0...puppeteer-core-v23.11.1)

---
updated-dependencies:
- dependency-name: puppeteer-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 23:47:47 +01:00
dependabot[bot] e0e78456be
Build(deps-dev): Bump lefthook from 1.9.3 to 1.10.0 (#30387)
Bumps [lefthook](https://github.com/evilmartians/lefthook) from 1.9.3 to 1.10.0.
- [Release notes](https://github.com/evilmartians/lefthook/releases)
- [Changelog](https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md)
- [Commits](https://github.com/evilmartians/lefthook/compare/v1.9.3...v1.10.0)

---
updated-dependencies:
- dependency-name: lefthook
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 23:47:34 +01:00
Sam efa50a4da2
FEATURE: ThreadPool implementation (#30364)
This commit introduces a new ThreadPool class that provides efficient worker
thread management for background tasks. Key features include:

- Dynamic scaling from min to max threads based on workload
- Proper database connection management in multisite setup
- Graceful shutdown with task completion
- Robust error handling and logging
- FIFO task processing with a managed queue
- Configurable idle timeout for worker threads

The implementation is thoroughly tested, including stress tests, error
scenarios, and multisite compatibility.
2024-12-20 07:37:12 +11:00
Kris 2a3f0f3bef
UX: refactor IP lookup using DMenu to improve layout and positioning (#30374) 2024-12-19 14:49:36 -05:00
Penar Musaraj 6873962572
DEV: Fix flakey spec (#30382) 2024-12-19 14:19:34 -05:00
David Taylor b6002881e7
FIX: Simplify nginx config change (#30383)
The security fix in 15b43a2 also introduced some unrelated refactoring to the file, which seems to be causing issues in some environments. This commit reverts the refactoring, and applies the security fix to each block individually.
2024-12-19 19:10:00 +00:00
Sérgio Saquetim 9618075b9c
DEV: Remove the deprecation of `includePostAttributes` (#30381) 2024-12-19 15:28:01 -03:00
David Taylor d2979997e9
DEV: Introduce new 'glimmer topic list mode' site setting (#30375)
This replaces the previous group-based site setting
2024-12-19 17:38:35 +00:00
Jarek Radosz 32ab4449a5
DEV: Update ember-qunit to 9.0.1 (#30358)
ember-qunit no longer uses ember-cli-test-loader

relevant files:
https://github.com/emberjs/ember-qunit/blob/main/addon/src/test-loader.js
https://github.com/ember-cli/ember-exam/blob/main/addon-test-support/-private/ember-exam-test-loader.js

<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/emberjs/ember-qunit/releases">ember-qunit's releases</a>.</em></p>
<blockquote>
<h2>Release 9.0.1</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><a href="https://redirect.github.com/emberjs/ember-qunit/pull/1183">#1183</a> Export TestLoader (<a href="https://github.com/ef4"><code>@​ef4</code></a>)</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Edward Faulkner (<a href="https://github.com/ef4"><code>@​ef4</code></a>)</li>
</ul>
<h2>Release 9.0.0</h2>
<h4>💥 Breaking Change</h4>
<ul>
<li><a href="https://redirect.github.com/emberjs/ember-qunit/pull/1182">#1182</a> Require explicit calls to loadTests and setupEmberOnerrorValidation (<a href="https://github.com/ef4"><code>@​ef4</code></a>)</li>
</ul>
<h4>🏠 Internal</h4>
<ul>
<li><a href="https://redirect.github.com/emberjs/ember-qunit/pull/1181">#1181</a> Remove unused babel plugins (<a href="https://github.com/ef4"><code>@​ef4</code></a>)</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Edward Faulkner (<a href="https://github.com/ef4"><code>@​ef4</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="48779a91ac"><code>48779a9</code></a> Release 9.0.1</li>
<li><a href="a70adfdf58"><code>a70adfd</code></a> Merge pull request <a href="https://redirect.github.com/emberjs/ember-qunit/issues/1183">#1183</a> from emberjs/export-test-loader</li>
<li><a href="25e2a6f4b3"><code>25e2a6f</code></a> Export TestLoader</li>
<li><a href="a039eda038"><code>a039eda</code></a> Release 9.0.0</li>
<li><a href="18d5ca9543"><code>18d5ca9</code></a> Merge pull request <a href="https://redirect.github.com/emberjs/ember-qunit/issues/1182">#1182</a> from emberjs/isolate-test-loading</li>
<li><a href="e4a9efd750"><code>e4a9efd</code></a> fix missing type</li>
<li><a href="634761bc1e"><code>634761b</code></a> separate onerror validation too</li>
<li><a href="d716b61cfd"><code>d716b61</code></a> Separate test loading from start</li>
<li><a href="3428b769dc"><code>3428b76</code></a> Inline ember-cli-test-loader implementation</li>
<li><a href="da520e0684"><code>da520e0</code></a> Merge pull request <a href="https://redirect.github.com/emberjs/ember-qunit/issues/1181">#1181</a> from emberjs/unused-babel-plugins</li>
<li>Additional commits viewable in <a href="https://github.com/emberjs/ember-qunit/compare/v8.1.1...v9.0.1">compare view</a></li>
</ul>
</details>
<br />
2024-12-19 18:38:29 +01:00
Keegan George d886c55f63
DEV: Reusable post-list component (#30312)
This update adds a  _new_ `<PostList />` component, along with it's child components (`<PostListItem/>` and `<PostListItemDetails />`). This new generic component can be used to show a list of posts.

It can be used like so:
```js
/**
 * A component that renders a list of posts
 *
 * @component PostList
 *
 * @args {Array<Object>} posts - The array of post objects to display
 * @args {Function} fetchMorePosts - A function that fetches more posts. Must return a Promise that resolves to an array of new posts.
 * @args {String} emptyText (optional) - Custom text to display when there are no posts
 * @args {String|Array} additionalItemClasses (optional) - Additional classes to add to each post list item
 * @args {String} titleAriaLabel (optional) - Custom Aria label for the post title
 * 
*/
```
```hbs
<PostList
    @posts={{this.posts}}
    @fetchMorePosts={{this.loadMorePosts}}
    @emptyText={{i18n "custom_identifier.empty"}}
    @additionalItemClasses="custom-class"
 />
```
2024-12-19 09:20:25 -08:00
= 6cd964306f Bump version to v3.4.0.beta4-dev 2024-12-19 13:22:05 -03:00
= bc4ab613ce Bump version to v3.4.0.beta3 2024-12-19 13:22:04 -03:00
Blake Erickson 17bdffc900 SECURITY: When enabled only allow Discourse Connect logins
If Discourse Connect is enabled no other methods for account creation or
authentication should be allowed.
2024-12-19 13:13:23 -03:00
Nat 15b43a205b SECURITY: Scrub headers to prevent access to files via nginx 2024-12-19 13:13:20 -03:00
Krzysztof Kotlarek 95564a3df2 SECURITY: Moderators cannot see user emails.
Unless `moderators_view_emails` SiteSetting is enabled, moderators should not be able to discover users’ emails.
2024-12-19 13:13:18 -03:00
Jarek Radosz 023b61ad22 SECURITY: Stored xss in image caption 2024-12-19 13:13:14 -03:00
Ella E. ddca2ca629
UX: Apply admin table to Automation settings page (#30341)
* UX: Apply admin table classes for consistent mobile styling on the automation page

* UX: Remove icon beside the automation page title

* DEV: Add status label to translations

* UX: Reorder the status and name when on mobile

* DEV: Add comment explaining tablet-specific status reorder

* DEV: Apply prettier
2024-12-19 05:07:14 -07:00
Jarek Radosz b2dc32f41c
FIX: An off-by-one error in glimmer topic list (#30372)
`findIndex` returns -1 when no element is found, but the `start` boundary can't be less than 0.
2024-12-19 13:02:41 +01:00
dependabot[bot] dc3379430d
Build(deps-dev): Bump test-prof from 1.4.2 to 1.4.3 (#30366)
Bumps [test-prof](https://github.com/test-prof/test-prof) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/test-prof/test-prof/releases)
- [Changelog](https://github.com/test-prof/test-prof/blob/master/CHANGELOG.md)
- [Commits](https://github.com/test-prof/test-prof/compare/v1.4.2...v1.4.3)

---
updated-dependencies:
- dependency-name: test-prof
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 12:09:32 +01:00
dependabot[bot] 38a74c7810
Build(deps): Bump logger from 1.6.3 to 1.6.4 (#30367)
Bumps [logger](https://github.com/ruby/logger) from 1.6.3 to 1.6.4.
- [Release notes](https://github.com/ruby/logger/releases)
- [Commits](https://github.com/ruby/logger/compare/v1.6.3...v1.6.4)

---
updated-dependencies:
- dependency-name: logger
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 12:09:09 +01:00
Joffrey JAFFEUX 1f39ce87a5
DEV: removes caret from notifications-tracking on mobile (#30369)
We never want to show this caret on mobile.
2024-12-19 12:06:02 +01:00
Joffrey JAFFEUX 9ca8f706bf
DEV: fixes typo in notifications-tracking assertions (#30371) 2024-12-19 12:05:54 +01:00
Joffrey JAFFEUX bce0018163
DEV: correctly applies identifier do DModal used in DMenu (#30370)
A previous refactor used an incorrect path. This commit also adds a simple test to ensure this identifier is present.
2024-12-19 12:05:39 +01:00
dependabot[bot] 0a9ebbe1dd
Build(deps): Bump discourse-fonts from 0.0.11 to 0.0.12 (#30368)
Bumps [discourse-fonts](https://github.com/discourse/discourse-fonts) from 0.0.11 to 0.0.12.
- [Release notes](https://github.com/discourse/discourse-fonts/releases)
- [Commits](https://github.com/discourse/discourse-fonts/compare/v0.0.11...v0.0.12)

---
updated-dependencies:
- dependency-name: discourse-fonts
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 08:27:44 +00:00
Martin Brennan 553784f919
DEV: Delete AdminPageHeader and AdminPageSubheader components (#30337)
No longer needed because of https://github.com/discourse/discourse/pull/30146
and there are plugin PRs to remove other traces of it
2024-12-19 12:47:14 +10:00
Alan Guo Xiang Tan e4e5db57f0
DEV: Fix undefined method `check_email_sync_heartbeat` in unicorn conf (#30360)
This is a follow-up to 9812407f76
2024-12-19 10:10:11 +08:00
Kelv 74aeec8ea3
FIX: handle null this.model when checking if component is for current user in CanCheckEmailsHelper (#30359) 2024-12-19 09:54:43 +08:00
dependabot[bot] 07efdaa32a
Build(deps): Bump openssl from 3.2.0 to 3.2.1 (#30350)
Bumps [openssl](https://github.com/ruby/openssl) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/ruby/openssl/releases)
- [Changelog](https://github.com/ruby/openssl/blob/master/History.md)
- [Commits](https://github.com/ruby/openssl/compare/v3.2.0...v3.2.1)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 01:11:37 +01:00
Krzysztof Kotlarek fdb6634fa9
FEATURE: settings tab for permalinks (#30192)
Setting tab should be added to permalinks so admins do not need to have left `/permalinks`.

A new component called `AreaSetting` was added to avoid duplications and
simplify adding settings to other sections.
2024-12-19 10:40:34 +11:00
dependabot[bot] 4305b64460
Build(deps-dev): Bump puppeteer-core from 23.10.4 to 23.11.0 (#30356) 2024-12-18 23:24:29 +01:00