Commit Graph

59110 Commits

Author SHA1 Message Date
14ce074767 Update translations (#32107) 2025-04-03 00:05:01 +02:00
d82220fc72 Bump version to v3.4.2 v3.4.2 2025-03-26 10:19:53 +08:00
9f86c751a5 SECURITY: respect allow private messages prefernce for DMs 2025-03-26 09:27:57 +08:00
dc0c3fc53d DEV:port split method from main to stable (#32001)
- Move the change added in [this commit
](df412608c8)to
stable
2025-03-25 15:46:07 -03:00
621ef741f6 DEV:add parameters to outlet args (#31996)
- Add these params directly to stable since main refactored the template
2025-03-25 15:45:39 -03:00
62a9301f8a Update translations (#31995) 2025-03-25 17:23:04 +01:00
849846e985 Update translations (#31876) 2025-03-18 15:08:20 +01:00
fd450a6494 DEV: Add APIs in the post menu to handle collapsed buttons (#31734) (#31837)
- backport of #31734 to stable branch

---------

Co-authored-by: Sérgio Saquetim <1108771+megothss@users.noreply.github.com>
2025-03-17 22:07:11 -03:00
32d4426f7e DEV:pass post as an argument for additional member info (#31799)
- Backporting change from main to stable
2025-03-14 14:43:27 -03:00
96819f5c88 Update translations (#31748) 2025-03-11 17:47:47 +01:00
1603ebc8ea DEV: backporting to stable - add behavior transformer to topic list item click (#31664)
- Add the behavior transformer `topic-list-item-click` to allow the
customization for the click behavior on the topic list item.
2025-03-06 17:21:42 -03:00
0a7a0dcffb Update translations (#31618) 2025-03-04 16:12:15 +01:00
25a8e64a53 DEV:add outlet wrapper for user summary topic (#31563)
- Backport the addition of the outlet wrapper to the stable branch.
2025-02-28 17:27:58 -03:00
01b31a753c DEV: add password validation helper class (#31541)
Partial backport of
b8a4b11cbb.

This adds the `password-validation-helper.js` class so that anything
else depending on `stable` is able to use this class.
2025-02-27 22:11:14 +08:00
909b93f40f Update translations (#31503) 2025-02-25 15:11:32 +01:00
623b49dd03 Bump version to v3.4.1 v3.4.1 2025-02-24 13:13:34 +08:00
5d53a7315c Update translations (#31471) 2025-02-24 15:12:15 +11:00
3bbf96fa21 Update translations (#31378) 2025-02-18 14:51:52 +01:00
cbe0dca792 Update translations (#31277) 2025-02-11 16:43:14 +01:00
b9363494d4 FIX: invalid CSP directive sources should allow site to boot with valid CSP directives (stable) (#31270)
[Security
patch](5558e72f22)
(for this [CVE](https://nvd.nist.gov/vuln/detail/CVE-2024-54133)) from
rails actionpack was backported from [Rails
8.0.0.1](https://github.com/rails/rails/blob/v8.0.1/actionpack/CHANGELOG.md#rails-8001-december-10-2024)
to previous stable versions including `7-1-stable` / `7-2-stable`.

Any previous version of Discourse upgrading to v3.4.0.beta3 and above
would have observed their sites crashing if they had invalid sources in
their CSP directive extensions.

This fix removes such invalid sources during our build of the CSP, and
logs these at a warning level so devs are able to find out why their CSP
sources were filtered out of the extendable directives.
2025-02-11 11:51:01 +08:00
edd19bd96f Revert "UX: Hide inner site settings sidebar if admin sidebar enabled (#31047)" (#31268)
This reverts commit 91e9c1c81343990d5ebbb3a3bb7c68ec4445d610.

After feedback, for now we are reverting this change. This is not
permanent, the settings sidebar will be removed again, after we:

* Visually group the settings the same way as the sidebar does
  on All Settings
* Add more settings pages to the main admin sidebar to cover the ~250
  settings not yet represented there
2025-02-11 12:47:36 +10:00
22f2a554ef FIX: ensure all children of .with-topic-progress are clickable (#31176) (#31178)
This is a follow-up to 71eb2f6cda9ad8a69ba1ae7d506440c3ff0bc9cb, we have
outlets in this wrapper too — so best to re-enable pointer events on all
immediate children of the disabled wrapper.
2025-02-05 09:06:54 -05:00
4abee26a32 Bump version to v3.4.0 v3.4.0 2025-02-04 13:51:15 -03:00
216662eb90 Merge v3.4.0.beta4 into stable 2025-02-04 13:51:15 -03:00
76e7f12a6d Bump version to v3.4.0.beta4 v3.4.0.beta4 2025-02-04 13:49:16 -03:00
fa235e49e9 Bump version to v3.3.4 v3.3.4 2025-02-04 13:43:01 -03:00
d47964d992 SECURITY: Ensure user-stream topic titles are always escaped correctly
In core, `escapeExpression` was being applied during the model loading phase. However, plugin consumers of the UserStreamItem component were not necessarily doing the same.

This commit moves the emoji-replacement logic (which also safely handles escaping) into the component template, so that it is safe-by-default, regardless of how it's used by plugins.
2025-02-04 13:35:17 -03:00
ca1ff4dfbc SECURITY: Limit /inline-onebox to 10 URLs at a time 2025-02-04 13:35:13 -03:00
549cabd140 Don't allow loading tagged PMs in another user's inbox. 2025-02-04 13:35:09 -03:00
fa0748428d SECURITY: Ability to bypass disabling chat of users 2025-02-04 13:35:06 -03:00
2ddb27cf9c SECURITY: Restrict allowed URL patterns
Restrict allowed URL patterns for oneboxes.
2025-02-04 13:35:02 -03:00
5d60557e0f SECURITY: Preload data only when rendering application layout
This commit drops the `before_action :preload_json` callback in `ApplicationController` as it adds unnecessary complexity to `ApplicationController` as well as other controllers which has to skip this callback. The source of the complexity comes mainly from the following two conditionals in the `preload_json` method:

```
    # We don't preload JSON on xhr or JSON request
    return if request.xhr? || request.format.json?

    # if we are posting in makes no sense to preload
    return if request.method != "GET"
```

Basically, the conditionals solely exists for optimization purposes to ensure that we don't run the preloading code when the request is not a GET request and the response is not expected to be HTML. The key problem here is that the conditionals are trying to expect what the content type of the response will be and this has proven to be hard to get right. Instead, we can simplify this problem by running the preloading code in a more deterministic way which is to preload only when the `application` layout is being rendered and this is main change that this commit introduces.
2025-02-04 13:34:58 -03:00
8192aedd69 SECURITY: Sanitize video placeholder urls
Make sure video placeholder urls are valid. An error message is displayed instead of an infinite loading spinner after clicking play.
2025-02-04 13:34:54 -03:00
416ec83ae5 SECURITY: Limit /inline-onebox to 10 URLs at a time 2025-02-04 13:32:53 -03:00
6d0173c9bd SECURITY: Ensure user-stream topic titles are always escaped correctly
In core, `escapeExpression` was being applied during the model loading phase. However, plugin consumers of the UserStreamItem component were not necessarily doing the same.

This commit moves the emoji-replacement logic (which also safely handles escaping) into the component template, so that it is safe-by-default, regardless of how it's used by plugins.
2025-02-04 13:32:49 -03:00
d2de58e760 Don't allow loading tagged PMs in another user's inbox. 2025-02-04 13:32:46 -03:00
3d47a1268c SECURITY: Ability to bypass disabling chat of users 2025-02-04 13:32:42 -03:00
b89cf9b443 SECURITY: Disable access to "activate-account" route for existing users 2025-02-04 13:32:38 -03:00
17116c440b SECURITY: Restrict allowed URL patterns
Restrict allowed URL patterns for oneboxes.
2025-02-04 13:32:34 -03:00
17e1bfe069 SECURITY: Preload data only when rendering application layout
This commit drops the `before_action :preload_json` callback in `ApplicationController` as it adds unnecessary complexity to `ApplicationController` as well as other controllers which has to skip this callback. The source of the complexity comes mainly from the following two conditionals in the `preload_json` method:

```
    # We don't preload JSON on xhr or JSON request
    return if request.xhr? || request.format.json?

    # if we are posting in makes no sense to preload
    return if request.method != "GET"
```

Basically, the conditionals solely exists for optimization purposes to ensure that we don't run the preloading code when the request is not a GET request and the response is not expected to be HTML. The key problem here is that the conditionals are trying to expect what the content type of the response will be and this has proven to be hard to get right. Instead, we can simplify this problem by running the preloading code in a more deterministic way which is to preload only when the `application` layout is being rendered and this is main change that this commit introduces.
2025-02-04 13:32:30 -03:00
14d1d11536 SECURITY: Sanitize video placeholder urls
Make sure video placeholder urls are valid. An error message is
displayed instead of an infinite loading spinner after clicking play.
2025-02-04 13:32:20 -03:00
5055a071b8 FIX: Allow to follow non-ASCII canonical links for oneboxes 2025-02-04 15:40:23 +01:00
324857c4c4 Update translations (#31163) 2025-02-04 15:18:03 +01:00
2c5dbdc23f Update translations (#31124) 2025-02-04 15:17:59 +01:00
2ceb40ffa4 DEV: Resolve flaky trust_level spec (#31165) 2025-02-04 13:46:31 +00:00
649505d869 DEV: Add 'include' statements for outlets in nginx config (#30929)
The 'include' statements serve as extension outlets that are populated
by discourse/discourse_docker.
2025-02-04 15:21:33 +02:00
65324b6e5d DEV: enable raise_error in test envs for deprecated icons in svg_sprite.rb (#30980)
This PR raises an error on any deprecated icon names being converted by
svg_sprite.rb, which will result in any deprecated icons being processed
by the ruby lib to fail tests.
2025-02-04 21:21:20 +08:00
8ad34862e4 DEV: adds includeNone param to form-kit select (#31162)
This option allows to force the presence of none when a value is
selected.
2025-02-04 11:46:24 +01:00
294ed87a6f UX: restore shared sidebar link for posts and drafts (#31159)
While introducing the new drafts dropdown menu component, we also made
some changes to how the sidebar link works for Drafts. However, after
following user feedback and internal discussions we decided to revert
back to the shared link approach that combines My Posts and My Drafts.
2025-02-04 14:40:18 +04:00
acad83199e DEV: Make api version optional (#31160)
We'll be making this change more deeply soon. For now, this is the
minimum change required to a this version-free syntax work under
Discourse 3.4.0.
2025-02-04 10:19:04 +00:00