This commit updates code to not prefetch group setting
fields using select_related as we do not need to
prefetch these settings for all the cases and we instead
prefetch these in callers whenever needed.
This commit adds steps to troubleshoot errors encountered
because of certain services like postgresql not starting
on WSL2.
The common reason behind this is port conflicts with other
services running on some other WSL2 instance or the host
Windows system.
This commit provides a guide to handle these issues, and
also provides some additional tips to WSL2 users to avoid
facing these issues in the future.
Fixes#32718.
The assumption here is that VirtualBox is used only for Windows. This
is because we do not mention VirtualBox for Unix based platforms prior
to this troubleshooting errors section.
Prep for organizing common errors into operating systems tabs.
This change is done as a prerequisite step to
eventually add tabs for different platforms
for the troubleshooting section.
The reason behind making this change is to group
the errors common to vagrant setup when using
either docker or VirtualBox backends which would
make it convenient to maintain in the future.
This removes the bug reporting steps from
the intro of the setup tutorial, as it
is already present in the `Troubleshooting
and common errors` section.
This commit adds code to redirect '#groups/new' to '#groups/your'
if realm is on limited plan like we do when user does not have
permission to create groups.
This commit adds code to live update the UI when
can_create_user_groups setting changes.
The elements that are live updated are -
- Icon button at the top left panel
- Button shown in right panel when no group
is selected.
- Text shown in right panel mentioning whether
user has permission.
We do not live update the text shown when left
panel is empty as it is somewhat complex to
handle all conditions correctly for it.
"stream-advanced-configurations" was being used as ID for
advanced configurations section in both stream edit and
creation UI, which is not correct as ID should be unique.
This commit fixes it by removing the ID and instead using
class in selectors. Also, there was some unused CSS, as
we do not have dropdown widget buttons in advanced
configurations section, written using the duplicate ID so
removed that as well.
In update_web_public_stream_privacy_option_state, when showing
and hiding the web-public option, "hidden" prop was set while
hiding the option and ".show()" was called to show the option.
Now once the UI was live updated by calling "show" setting
hidden attribute again to hide did not work because
"display: block" CSS applied by calling "show" kept the
option visible. This commit updated code to show the option
by setting "hidden" attribute to "false".
This commit fixes the use of "stream_permission_settings"
as ID for "Channel permissions" subsection in both
stream edit and creation UI, which was not correct since
ID should be unique.
To fix this ID was removed from the element and following
changes are done -
- $("#stream_settings") element is now used as a container
for live update functions for stream edit UI.
- "stream-permissions" class is used to access the element
instead of ID.
- Advanced configurations container also had "stream-permissions"
class before, and that was removed in this commit so that
"Channel permissions" container can be identified uniquely
and thus some CSS changes were needed.
- Also, fixed "update_stream_privacy_choices" function to
not use ":visible" in selectors.
Previously, when leaving the group by clicking "checkmark"
icon in group row, group details were opened in right panel
as well due to event propagation.
We keep the behavior of opening the group in right panel
after joining the group by clicking on "+" icon in the
group row.
For narrow widths, left panel is kept open while joining
or leaving the group, same like we do for stream settings.
When clicking on "Cancel" button in the footer in stream
creation UI, left panel should be shown for mobile widths.
Previously, it resulted in a buggy view showing both left
and right panels.
This change makes the behavior consistent with what we
have for streams UI.
There is no change in behavior for wider screens.
Clarify what the invoiced_through field on a CustomerPlan indicates
after the changes to the billing state machine as ledger entries
are processed in invoice_plan.
Updates the plan activity page where this field is shown to support
admin users for these changes as well.
Follow-up to #34643.
Server can now send partial data to the client to help in
developement. We don't want this to be widely used right now,
hence no documentation changes have been made.
This will likely be a check on client capability later.
This is done in a best-effort way -- we rely on the final ACL check
happening when the message is sent. However, by then we will be in
the `email_mirror` worker, with no way to convey to the original SMTP
client that the sending failed; giving the client the information will
allow them to provide it back to the end-user, instead of merely being
swallowed up in the worker.
Using postfix to handle the incoming email gateway complicates things
a great deal:
- It cannot verify that incoming email addresses exist in Zulip before
accepting them; it thus accepts mail at the `RCPT TO` stage which it
cannot handle, and thus must reject after the `DATA`.
- It is built to handle both incoming and outgoing email, which
results in subtle errors (1c17583ad5, 79931051bd, a53092687e,
#18600).
- Rate-limiting happens much too late to avoid denial of
service (#12501).
- Mis-configurations of the HTTP endpoint can break incoming
mail (#18105).
Provide a replacement SMTP server which accepts incoming email on port
25, verifies that Zulip can accept the address, and that no
rate-limits are being broken, and then adds it directly to the
relevant queue.
Removes an incorrect comment which implied that missed-message
addresses were only usable once. We leave rate-limiting to only
channel email addresses, since missed-message addresses are unlikely
to be placed into automated systems, as channel email addresses are.
Also simplifies #7814 somewhat.