Commit Graph

67000 Commits

Author SHA1 Message Date
Greg Price
5ee9ae7eab docs: Request showing touches/clicks in screencast videos. 2025-10-17 15:49:27 -07:00
Greg Price
88dddc8090 docs: Clarify and sharpen request for screenshots vs videos. 2025-10-17 15:49:27 -07:00
Alex Vandiver
75c0f0286f semgrep: Lint unnecessary type=str in argparse. 2025-10-17 15:34:34 -07:00
Alex Vandiver
1e943ae7df python: Elide type=str from argparse arguments. 2025-10-17 15:34:34 -07:00
Alex Vandiver
ca01de84be emoji: Fix aliases for dotted_six_pointed_star.
CLDR 46 added this alias, which is not accurate; remove it.
2025-10-17 15:34:16 -07:00
Alya Abbott
de19741613 help: Open intro modal when checking out CZO. 2025-10-17 10:54:42 -07:00
Alya Abbott
36a63f7963 docs: Clarify how security releases are done. 2025-10-17 10:54:14 -07:00
Alex Vandiver
52ba675a26 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.
2025-10-16 19:02:15 +00:00
Karl Stolley
90054890f3 api_docs: Add section on transcoded images. 2025-10-14 15:37:17 -07:00
Karl Stolley
19e5c8b8c9 api_docs: Clean up intro text on image placeholders. 2025-10-14 15:35:27 -07:00
Karl Stolley
35aac76176 api_docs: Reference example images as example.png. 2025-10-14 15:35:27 -07:00
Karl Stolley
85e6cec1db api_docs: Better structure Image previews section. 2025-10-14 15:35:27 -07:00
Alex Vandiver
bdb2c921ba docs: Document wal-g restore process. 2025-10-14 15:07:33 -07:00
Alex Vandiver
dd92036550 docs: Trim PostgreSQL support table.
Remove versions which we have also removed from ReadTheDocs.
2025-10-14 15:06:01 -07:00
Alex Vandiver
9815db9811 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
2025-10-14 12:56:10 -07:00
Lauryn Menard
5d7adcbc00 typing: Use people.emails_string_to_user_ids for "dm" narrow term.
Updates the logic for getting the typists for a specific direct
message conversation to mirror narrow_state.set_compose_defaults
for the current filter's "dm" narrow term.
2025-10-14 12:19:53 -07:00
Lauryn Menard
c2d008aadb test-signup: Confirm all invalid email field error messages.
In Django, when cleaning a form field, all validators are run on
the field and all validation error messages are all collected.
Updates our test for invalid email addresses when creating a new
realm to confirm all expected error messages from the various
validators that are run on that field.
2025-10-14 12:19:07 -07:00
Lauryn Menard
f55c89a87f forms: Call superclass clean method for CaptchaRealmCreationForm.
Ensures that the form fields set in the superclass are validated.
2025-10-14 12:19:07 -07:00
Lauryn Menard
7185f2c236 forms: Set realm_creation field one time when initializing form.
In commit c7a08f3b77, we started setting the realm_creation field
in both the RegistrationForm and its superclass, RealmDetailsForm,
which was likely a copy and paste error.

Since we only need to set the realm_creation field once when
initializing the form fields, we set it in the RealmDetailsForm,
which also removes any confusion related to the comment about
removing extra kwargs in the RegistrationForm initialization.
2025-10-14 12:19:07 -07:00
PieterCK
b36f09c67f slack_importer_doc: Fix outdated links.
Existing links redirects to irrelevant documentation pages.
2025-10-14 12:17:45 -07:00
Niloth P
ad122af6f8 integrations: Use dir_name instead of name for default view fn.
Use the directory name as the template literal in the default view
function path.
2025-10-14 12:17:05 -07:00
Niloth P
23740c97a4 integrations: Remove redundant arguments. 2025-10-14 12:17:05 -07:00
Niloth P
f33ef8f206 integrations: Rename IFTTT view function to match conventions. 2025-10-14 12:17:05 -07:00
Tim Abbott
e4ba536eae migrations: Add merge migration for backport of 0753.
Systems upgrading from 11.x will have 0753 and not 0752, while systems
upgrading from main may have 0752 and not 0753, so a merge migration
is required to smoothly handle upgrades from both states.
2025-10-14 11:56:57 -07:00
Aman Agrawal
9ffe31e352 message_list_view: Fix missing bookend when prepending messages.
The logic for inserting bookend when prepending messages was
missing.

Fixed by inserting the bookend at the correct position.

Reproducer:

Modify `message_fetch` parameters to only fetch
one message per fetch to ensure that each message is prepended.

Subscribe to a channel and send a message.

Reload.

Bookend is absent before the latest message without this commit.
2025-10-14 11:52:36 -07:00
Alya Abbott
aac651fa39 updates: Add update message (level=22). 2025-10-13 23:18:00 -07:00
Lauryn Menard
97fc26dd99 create-realm: Remove 'left' and 'center' classes.
The 'left' and 'center' classes have no apparent CSS styles or
frontend code that uses them on the `create_realm.html` template.
2025-10-13 10:08:14 -07:00
Lauryn Menard
69a8ec3ae9 create-realm: Remove margin-top rules for new-organization-button.
The top margin for the submit button on `create_realm.html` is
set by the '#new-realm-creation .register-button' rule in
`portico_signin.css`.

Removes the redundant margin-top rules for new-organization-button
class that are not used.
2025-10-13 10:08:14 -07:00
Lauryn Menard
e98cf5819c create-realm: Remove CSS rule for 'input.new-organization-button'.
In commit 7afbc9d, the button to create a new organization in
`templates/zerver/create_realm.html` was changed from an input
element to a button element.

Removes CSS rule that's been unused since that change.
2025-10-13 10:08:14 -07:00
Lauryn Menard
e4b425c083 docs: Update links for renamed securing-your-zulip-server doc. 2025-10-13 10:06:31 -07:00
Anders Kaseorg
4192d46a0e upgrade-zulip-from-git: Fix fully broken refname parsing.
Commit c903128eb7 (#36214) was evidently
never tested.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-10-12 16:47:53 -07:00
Aman Agrawal
83719cd5be inbox_ui: Allow muting topics without using message object.
Since muting topics doesn't require a complete message, we can
mute topics with the information we have.
2025-10-10 09:57:23 -07:00
Aman Agrawal
97452ea4f8 hotkey: Fix wrong assumption of message_lists.current is defined.
Since we are checking `is_in_focus()` of recent and inbox view,
message_lists.current can be not defined here, also addition
a new view in Zulip will make this fail.
2025-10-10 09:57:23 -07:00
PieterCK
c54dee9fab slack_integration: Audit the Slack bot token scope requirements.
This clarifies which Slack bot token scopes the integration really uses.
Extraneous scopes are: `users:read.email`, `team:read`, and
`emoji:read`.

Fixes part of #30827.
2025-10-10 09:55:38 -07:00
Mateusz Mandera
e65fb2d051 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.
2025-10-10 09:52:50 -07:00
Mateusz Mandera
d484fd95d8 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.
2025-10-10 09:52:44 -07:00
Mateusz Mandera
a473d05840 slack: Fix formation of bot email addresses with non-ascii chars. 2025-10-10 09:49:35 -07:00
Tom Hubrecht
5ed5fa3315 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.
2025-10-10 09:47:45 -07:00
Evy Kassirer
ab8f6891d6 popovers: Fix name for sidebar channel folders popover. 2025-10-10 09:46:44 -07:00
Niloth P
36b3d24ee6 integration-docs: Add the install-requirements.md macro.
The macro will be used by some script integrations in python-zulip-api.
2025-10-10 09:45:45 -07:00
Evy Kassirer
38e7f11259 hotkey: Specify reactions toggle to message controls.
Sometimes this selector was catching a second
`emoji-message-control-button-container` from an emoji reaction,
which was only caught once we started using `util.the`. This
change avoids catching that irrelevant element.
2025-10-10 09:45:06 -07:00
Anders Kaseorg
898b544ba4 message_store: Update ProcessedMessage type in reify_message_id.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-10-10 09:42:07 -07:00
Anders Kaseorg
f04f3bcbfc stripe: Order downgrade_small_realms_behind_on_payments_as_needed query.
Fixes nondeterminism that broke
test_downgrade_small_realms_behind_on_payments_as_needed.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-10-10 09:41:45 -07:00
Shubham Padia
9bb082a315 docs: Add tests for adding canonical URL to relevant doc pages.
Add these tests for /policies, /api and /integrations.
2025-10-10 09:18:13 -07:00
Alya Abbott
14902688d2 docs and portico: Update documentation word counts. 2025-10-09 15:11:42 -07:00
Lauryn Menard
b42d3e77e7 forms: Set EmailField max_length to match Django Model.EmailField.
Django's Model.EmailField's default max_length is 254 characters,
while the Form.EmailField's default max length is 320 characters.
The longer valid length for form email fields raises an error
when an email with over 254 characters is validated and the server
attempts to create a preregistration user or realm.

Sets the max length on current form EmailFields to match the max
length on corresponding email fields in the database.

For the form MultiEmailField used on the find account/team page,
we don't need to set the max length to 254, but we don't expect
any emails longer than that to match any existing user accounts.
Adds tests in `zerver/tests/test_signup.py` for form submissions
with long email addresses.
2025-10-09 15:47:04 -04:00
Alex Vandiver
fdcfafd13d send_custom_email: Add a flag for sending release announcements. 2025-10-09 12:10:15 -07:00
Alex Vandiver
79e718ed3a send_email: Move break into custom_email_sender. 2025-10-09 12:10:15 -07:00
Vector73
a5d25826bd github_action: Mention PR where the endpoints were added.
Updates "API Documentation Update Check" tool to  add PR
information in the message to chat.zulip.org when the
new endpoints are added.
2025-10-09 11:39:54 -07:00
Anders Kaseorg
b8f8056f56 markdown: Use re-exported guess_type to ensure adding EXTRA_MIME_TYPES.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-10-08 23:36:15 -07:00