zulip/zerver/views
Aman Agrawal 2bc3924672 move_topic_to_stream: Allow moving to/between/from private streams.
Fixes #16284.

Most of the work for this was done when we implemented correct
behavior for guest users, since they treat public streams like private
streams anyway.

The general method involves moving the messages to the new stream with
special care of UserMessage.

We delete UserMessages for subs who are losing access to the message.
For private streams with protected history, we also create UserMessage
elements for users who are not present in the old stream, since that's
important for those users to access the moved messages.
2020-09-14 15:00:55 -07:00
..
development docs: Update many references to Casper. 2020-08-30 17:16:02 -07:00
__init__.py
alert_words.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
archive.py topic: Rename get_topic_history_for_web_public_stream. 2020-08-25 17:01:12 -07:00
attachments.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
auth.py python: Use standard secrets module to generate random tokens. 2020-09-09 15:52:57 -07:00
camo.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
compatibility.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
custom_profile_fields.py python: Replace ujson with orjson. 2020-08-11 10:55:12 -07:00
digest.py python: Prefer kwargs form of dict.update. 2020-09-03 17:51:09 -07:00
documentation.py help: Stop collapsing sidebar sections. 2020-07-28 16:28:58 -07:00
drafts.py drafts: Use strings as dict keys. 2020-08-07 10:53:06 -07:00
email_mirror.py email-mirror-postfix: Handle 8-bit messages correctly. 2020-06-14 20:24:06 -07:00
events_register.py events_register_backend: Validate client_capabilities type correctly. 2020-06-20 22:29:15 -07:00
home.py python: Use standard secrets module to generate random tokens. 2020-09-09 15:52:57 -07:00
hotspots.py python: Convert percent formatting to .format for translated strings. 2020-06-15 16:24:46 -07:00
invite.py invite: Add option to invite user as an organization owner. 2020-06-20 23:04:59 -07:00
message_edit.py move_topic_to_stream: Allow moving to/between/from private streams. 2020-09-14 15:00:55 -07:00
message_fetch.py exceptions: Raise InvalidSubdomainError when realm is invalid. 2020-09-03 10:45:14 -07:00
message_flags.py views: Extract message_flags.py for flags views. 2020-06-22 15:08:34 -07:00
message_send.py docs: Document local echo paramters for sending messages. 2020-06-25 14:44:16 -07:00
muting.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
portico.py urls: Migrate re_path routes to path. 2020-09-12 14:29:26 -07:00
presence.py python: Convert percent formatting to .format for translated strings. 2020-06-15 16:24:46 -07:00
push_notifications.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
reactions.py emoji: Switch to `user_profile.realm` for cross-realm reactions. 2020-07-24 13:11:27 -07:00
realm.py audit_log: Log RealmAuditLog for realm notification properties. 2020-07-24 11:51:47 -07:00
realm_domains.py audit_log: Log RealmAuditLog in do_set_realm_property. 2020-07-06 17:38:19 -07:00
realm_emoji.py python: Convert percent formatting to .format for translated strings. 2020-06-15 16:24:46 -07:00
realm_export.py python: Replace ujson with orjson. 2020-08-11 10:55:12 -07:00
realm_filters.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
realm_icon.py docs: Fix spelling errors caught by codespell. 2020-08-11 10:23:06 -07:00
realm_logo.py docs: Fix spelling errors caught by codespell. 2020-08-11 10:23:06 -07:00
registration.py python: Prefer kwargs form of dict.update. 2020-09-03 17:51:09 -07:00
report.py report: Allow anonymous queries to report (un)narrow times. 2020-09-11 16:57:27 -07:00
storage.py update_storage: Validate storage type correctly. 2020-06-20 22:29:15 -07:00
streams.py topic_history: Allow anonymous access in web-public streams. 2020-09-04 10:17:56 -07:00
submessage.py python: Replace ujson with orjson. 2020-08-11 10:55:12 -07:00
thumbnail.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
tutorial.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
typing.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
unsubscribe.py python: Prefer kwargs form of dict.update. 2020-09-03 17:51:09 -07:00
upload.py python: Convert percent formatting to .format for translated strings. 2020-06-15 16:24:46 -07:00
user_groups.py user_groups: Use 'path_only=True' in REQ for 'user_group_id' in views. 2020-08-26 15:40:19 -07:00
user_settings.py audit_log: Record RealmAuditLog in do_change_notification_settings. 2020-07-24 12:04:40 -07:00
users.py api: Return 'user_id' in 'POST /users' response. 2020-08-11 16:40:12 -07:00
video_calls.py python: Use standard secrets module to generate random tokens. 2020-09-09 15:52:57 -07:00
zephyr.py python: Replace ujson with orjson. 2020-08-11 10:55:12 -07:00