Commit Graph

66564 Commits

Author SHA1 Message Date
Alya Abbott
569d37afe5 docs: Reorganize authentication backends documentation.
(cherry picked from commit f20035e2ad)
2025-10-21 10:37:53 -07:00
Alex Vandiver
c4c189894b Revert "compose: Track when the recipient box has recently had focus."
This reverts commits 5ce956c9bb and
14c51bd0ec, which broke the compose box
in channels with "only general chat" set.

(cherry picked from commit 52ba675a26)
2025-10-21 14:30:14 +00:00
Alex Vandiver
8179eb15c1 emoji: Fix aliases for dotted_six_pointed_star.
CLDR 46 added this alias, which is not accurate; remove it.

(cherry picked from commit ca01de84be)
2025-10-21 01:01:10 -04:00
Sahil Batra
b0604da430 drodpown: Do not use fa-ban icon for disabled option.
(cherry picked from commit feaaf9ff03)
2025-10-21 01:01:10 -04:00
Sahil Batra
ddeff4752a dropdown-widget: Remove left padding for icons.
This commit removes left padding for the stream privacy
and disabled icon in dropdown widgets. There is already
a padding in grid container and we are fine with removing
the 2px padding to avoid maintaining more pixel values.

(cherry picked from commit 60074db0ed)
2025-10-21 01:01:10 -04:00
Sahil Batra
d9ea917b46 dropdown-widget: Fix alignment of disabled option.
The alignment of icon and text of the disabled option in
dropdown widget was somewhow broken due to an extra span
element present which broke the grid layout used for
rendering the icon and text properly.

This also makes the layout consistent with other options
shown with icon.

This was due to e643d7e6fd which resulted in space
between icon and text. We could have fix that by using
"~" character to remove whitespace in handlebar templates
but making the layout consistent felt a better choice.

(cherry picked from commit 46f338f54f)
2025-10-21 01:01:10 -04:00
Aman Agrawal
e12a9fccc6 inbox: Fix collapsed note missing user only has unread DMs.
When there are only unread DMs and it is collapsed, the all rows
collapsed not is not shown.

This occurred since we didn't check for that.

(cherry picked from commit d1cedb7f1d)
2025-10-21 01:01:10 -04:00
PieterCK
b056554740 slack_importer_doc: Fix outdated links.
Existing links redirects to irrelevant documentation pages.

(cherry picked from commit b36f09c67f)
2025-10-21 01:01:10 -04:00
Mateusz Mandera
dd86a958b5 slack: Requote image_url in render_attachment.
Slack attachment urls with white spaces,
e.g. `https://example.com/some file.png`,
were rejected by `check_url`. We want to call `requote_url` to deal with
any url-quoting jankiness that may be present in the exported data.

(cherry picked from commit e65fb2d051)
2025-10-21 01:01:10 -04:00
Mateusz Mandera
8868aad2dc slack: Add missing block types.
1. `call` is a block type we've observed in the wild in a Slack export,
   despite not being documented in
   https://docs.slack.dev/reference/block-kit/blocks/

2. We already have the logic for converting `condition` block type below
   in the function, but it was erroneously missing from the list of valid
   types.

(cherry picked from commit d484fd95d8)
2025-10-21 01:01:10 -04:00
Mateusz Mandera
52d7b88c0d slack: Fix formation of bot email addresses with non-ascii chars.
(cherry picked from commit a473d05840)
2025-10-21 01:01:10 -04:00
Shubham Padia
571a79151a css: Do not use non-color values inside light-dark().
Non-color values are not permitted inside light-dark(). This commit
fixes that for --color-invalid-input-box-shadow.

(cherry picked from commit 7bce6361b3)
2025-10-21 01:01:10 -04:00
Alex Vandiver
6687af0ad3 email_mirror: Drop missed-message emails which are autogenerated.
Emails to missed-message email addressees which are marked
"auto-replied" are clearly auto-replies, and will not contribute
usefully to the conversation.  We also ignore "auto-generated" emails
to missed-message addresses, as they must actually be auto-replies
which are misclassifying themselves, as missed-message addresses are
not meant to be targets for any auto-generated emails.

We accept auto-generated and auto-replied emails to stream incoming
email addresses, as auto-generated emails to those are clearly useful,
and auto-replied emails are unexpected enough to allow (given that
Zulip does not produce outgoing emails From: stream email addresses).

(cherry picked from commit 3538455ca8)
2025-10-21 01:01:10 -04:00
Sahil Batra
7cb16993fa user_groups: Remove unnecessary select_related.
There is no need for 'select_related("usergroup_ptr")' in queries
for NamedUserGroup table because Django always does a join against
base UserGroup table.

(cherry picked from commit de5a78344a)
2025-10-17 15:49:56 -07:00
Sahil Batra
dc00903d87 groups: Use realm_for_sharding for limiting NamedUserGroup queries.
For get and filter queries of NamedUserGroup, realm_for_sharding
field is used instead of realm field, as directly using
realm_for_sharding field on NamedUserGroup makes the query faster
than using realm present on the base UserGroup table.

(cherry picked from commit 764f4aa2e0)
2025-10-17 15:49:56 -07:00
Sahil Batra
64773a91e2 streams: Make sure that unused anonymous groups are not created.
Anonymous groups were being created for stream permission
settings when calling the subscriptions endpoint without
any streams data or when calling it only for subscribing
users to streams and not for creating any new streams.

This commit makes sure that no such unused anonymous groups
are created.

(cherry picked from commit d4d7a8fe2a)
2025-10-17 15:49:56 -07:00
Alex Vandiver
37125c8860 upload: Use normpath when comparing to LOCAL_UPLOADS_DIR.
This prevents a development-mode-only directory traversal attack,
where the Django development server could be made to respond to
requests for `/user_avatars/../../../../../../etc/passwd`.

The production server is not affected by this vulnerability, as
nginx's configuration sets `PATH_INFO` to `$document_uri`, which is
normalized[^1] -- that is, by the time uwsgi and Django see it, the path
has been percent-decoded once, and all `../` path components have been
applied[^2].

Close this by explicitly normalizing the paths before comparing; the
`LOCAL_UPLOADS_DIR` side is unlikely to require normalization as well,
but is also normalized for consistency.  The failure here is left as
an assertion failure, and not a JsonableError, because it only affects
the development server.

[^1]: https://nginx.org/en/docs/http/ngx_http_core_module.html#var_uri
[^2]: https://nginx.org/en/docs/http/ngx_http_core_module.html#location

(cherry picked from commit 9815db9811)
2025-10-17 15:49:56 -07:00
Alex Vandiver
1f662ed9cf docs: Document how push notifications require a real email address.
(cherry picked from commit 72e3b94855)
2025-10-17 15:49:56 -07:00
Alex Vandiver
62cecb67f5 register_remote_server: Check for NS records, now just A/AAAA.
We shouldn't declare that the domain doesn't exist, if it has a valid
NS record but no A/AAAA.

(cherry picked from commit afd7c4b1d1)
2025-10-17 15:49:56 -07:00
Alex Vandiver
9f1fc5cad6 register_remote_server: Be more explicit about example.com emails.
(cherry picked from commit a0e5be7f2e)
2025-10-17 15:49:56 -07:00
Alex Vandiver
80a3d02869 register_remote_server: Explain why we're validating the domain.
(cherry picked from commit fc42c70346)
2025-10-17 15:49:56 -07:00
Tom Hubrecht
f7abee890f webhooks_gitea: Use the correct actor for pull_request actions
The user associated to a pull request is always its creator, however,
when closing a pull request, this can be the wrong actor. The paylod
contains the actor in the `sender` value, use this instead.

(cherry picked from commit 5ed5fa3315)
2025-10-17 15:49:56 -07:00
Evy Kassirer
c4b26ac95b search: Remove outline for focused pills in the typeahead.
Reported here:
https://chat.zulip.org/#narrow/channel/9-issues/topic/extraneous.20box.20when.20clicking.20on.20search.20pill.20in.20typeahead/near/2268435

(cherry picked from commit d9fded98ff)
2025-10-17 15:49:56 -07:00
Evy Kassirer
11d43ffa13 search: Align suggestion left padding with search bar icon space.
(cherry picked from commit fc9bbd37a0)
2025-10-17 15:49:56 -07:00
Lauryn Menard
62363bdca9 api-docs: Add realm_can_delete_any_message_group content access note.
Users in this user group must also have content access to the message
in order to permanently delete it.

(cherry picked from commit 06daab7174)
2025-10-17 15:49:56 -07:00
Lauryn Menard
c9fa2fee3b api-docs: Update delete-messages description for current permissions.
Prior to feature level 281, the only users who had permissions to
permanently delete any message in the organization were organization
administrators.

Currently, various realm and channel permission settings, which use
the user group model, determine if a user is able to permanently
delete a specific message.

Updates the main description of the endpoint to note these settings
and removes the note that the endpoint is limited to organization
administrators.

(cherry picked from commit b7815d9e2a)
2025-10-17 15:49:56 -07:00
Shubham Padia
20fa6a3756 help: Do not treat Help Center as a proper noun.
Fixes https://chat.zulip.org/#narrow/channel/101-design/topic/help.20center.20capitalization
2025-10-17 15:49:56 -07:00
Karl Stolley
cbae356540 compose: Clear recipient-focused timeout before setting another.
(cherry picked from commit 5ce956c9bb)
2025-10-17 15:49:56 -07:00
Alex Vandiver
18aac07c90 docs: Document wal-g restore process.
(cherry picked from commit bdb2c921ba)
2025-10-17 15:49:56 -07:00
Alex Vandiver
815938711f docs: Trim PostgreSQL support table.
Remove versions which we have also removed from ReadTheDocs.

(cherry picked from commit dd92036550)
2025-10-17 15:49:56 -07:00
Anders Kaseorg
b2e18f8639 build_emoji: Use clean emoji sheets without Apple fallback images.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
(cherry picked from commit 80b9cffb3d)
2025-10-14 11:54:10 -07:00
Anders Kaseorg
01d3fd8714 emoji: Remove deprecated Google blobs emoji set.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
(cherry picked from commit 85c94599c5)
2025-10-14 11:54:10 -07:00
Anders Kaseorg
e82b9140ed emoji: Remove setting for deprecated Google blobs emoji set.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
(cherry picked from commit b742ab18f9)
2025-10-14 11:54:10 -07:00
Lauryn Menard
db0b50089b templates: Add rel-canonical link to documentation pages.
Updates templates/zerver/meta_tags.html to add a rel-canonical
link if REL_CANONICAL_LINK is in the template context dict.

We add REL_CANONICAL_LINK to the documentation context for the
help center, API and integrations documentation pages in all
cases.

For policies documentation pages, we add REL_CANONICAL_LINK to
the context only when settings.CORPORATE_ENABLED is true, so
that self-hosted servers' policies documentation do not have a
rel-canonical link set.
2025-10-06 09:25:59 -07:00
Alex Vandiver
a45878a41a docs: Fix broken link syntax.
(cherry picked from commit 95354366c7)
2025-10-03 16:54:48 -07:00
Anders Kaseorg
1fdeb22132 release-checklist: Prescribe docker build --pull.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
(cherry picked from commit 7ebadb5d41)
2025-10-03 16:54:48 -07:00
Evy Kassirer
e7a8e62850 stream_list: Fix inactive/muted count bug.
We shouldn't include muted topics from unmuted channels in the
inactive/muted toggle count, since those unreads aren't in the
inactive/muted section. This fixes that.

Reported here: https://github.com/zulip/zulip/issues/36011#issuecomment-3327042885

(cherry picked from commit 5b0f135497)
2025-10-03 16:54:48 -07:00
Sahil Batra
f9263dfc74 settings: Improve label of can_set_topics_policy_group.
This commit updates the label for can_set_topics_policy_group
to specify that the user must be a channel administrator in
order to change the topics policy for a channel.

We did that before but it was removed in d8261d4b96.

(cherry picked from commit 31f8dcba6c)
2025-10-03 16:54:48 -07:00
Sahil Batra
8da2272250 settings: Improve label for can_set_topics_policy_group setting.
This commit updates the label for can_set_topics_policy_group
setting to be more clear by mentioning that it is used to
configure who can set the per-channel "general chat" configuration.

We also add a link to "/help/require-topics" with the label.

(cherry picked from commit d8261d4b96)
2025-10-03 16:54:48 -07:00
Aman Agrawal
1770a1a1ef inbox: Avoid extra margin from folders hidden by filters.
If all channels in a folder are muted, then this margin is present
in "Standard view", without there being any folder present.

Fixed by only applying margin if the folder has any header or rows
that are not hidden by filters.

This is an alternative fix to #35962 which was reverted in #36123.

(cherry picked from commit f2a11c5858)
2025-10-03 16:54:48 -07:00
Karl Stolley
441aff95ba inbox: Correct margin declaration to avoid odd gap.
(cherry picked from commit c21d2918da)
2025-10-03 16:54:48 -07:00
Alex Vandiver
279f3429d5 email_mirror_server: Drop privileges before attaching file handler.
(cherry picked from commit b39188f9cf)
2025-10-03 16:54:48 -07:00
Alex Vandiver
c0ce96a541 email_mirror_server: chown the logfile before dropping privileges.
This prevents the logger from failing due to an old, root-owned,
logfile already existing.

(cherry picked from commit 3064939ff7)
2025-10-03 16:54:48 -07:00
Alex Vandiver
f1e43331b8 docs: Cross-link to the reverse proxy pages.
(cherry picked from commit 3c2ed0e202)
2025-10-03 16:54:48 -07:00
Prakhar Pratyush
6c08bf4560 ui_init: Fix flashing of 'try zulip' modal.
On visiting 'https://chat.zulip.org/?show_try_zulip_modal',
a 'try zulip' modal is displayed to spectators.

Previously, the modal flashed briefly and disappeared.

Reason:
Earlier, in 'ui_init.js' we called 'show_try_zulip_modal'
followed by a network call - which on success called
'initialize_everything'.

'hashchange.initialize' (in 'initialize_everything') closes
any active modal.

So, the race between 'show_try_zulip_modal' & 'hashchange.initialize'
was resulting in this flash.

Fix:
We call 'show_try_zulip_modal' only after 'initialize_everything'
completes - there's no point to try to display modal when the
loading screen is still visible to users.

(cherry picked from commit 03897c42e1)
2025-10-03 16:54:48 -07:00
Aman Agrawal
fb9ed94fdd inbox: Fix user scrolling to top on rerender if filters are focused.
If one of the filters is focused or if we cannot determine the
current focus location, any rerender call will scroll user to
top.

Fixed by only scrolling to top when navigating from other views
and when we don't have a cached scroll position.

Tested by calling `complete_rerender` at 1s intervals.

(cherry picked from commit e3371cfb72)
2025-10-03 16:54:48 -07:00
Lauryn Menard
44c6c4af4d integrations: Update GitLab doc to direct to create webhook.
GitLab has both integrations and webhooks, and our documentation
should direct users to the webhooks set up for integrating with
Zulip.

Adds a link to GitLab's create a webhook documentation as well.

(cherry picked from commit 0af56bb80b)
2025-10-03 16:54:48 -07:00
Karl Stolley
faffdc231d compose: Track when the recipient box has recently had focus.
This helps to prevent an edge case where clicking the
new-topic button, `[+]`, in the left sidebar when the
topic box was already empty caused an unexpected flash
of the *general chat* topic.

(cherry picked from commit 14c51bd0ec)
2025-10-03 16:54:48 -07:00
Karl Stolley
79559e00cc compose: Update conversation arrow after clearing topic.
(cherry picked from commit 52c75b52fb)
2025-10-03 16:54:48 -07:00
Karl Stolley
fd35ec1a8c compose: Correct for undesired outline flash on pills.
(cherry picked from commit a4657a5bd7)
2025-10-03 16:54:48 -07:00