mirror of https://github.com/zulip/zulip.git
Extract send_stream_creation_events_for_private_streams.
We can probably avoid passing in users here.
This commit is contained in:
parent
1cfaef0d1a
commit
811426b345
|
@ -2891,18 +2891,12 @@ def bulk_add_subscriptions(streams: Iterable[Stream],
|
||||||
# We now send several types of events to notify browsers. The
|
# We now send several types of events to notify browsers. The
|
||||||
# first batch is notifications to users on invite-only streams
|
# first batch is notifications to users on invite-only streams
|
||||||
# that the stream exists.
|
# that the stream exists.
|
||||||
for stream in streams:
|
send_stream_creation_events_for_private_streams(
|
||||||
if not stream.is_public():
|
realm=realm,
|
||||||
# Users newly added to invite-only streams
|
streams=streams,
|
||||||
# need a `create` notification. The former, because
|
new_streams=new_streams,
|
||||||
# they need the stream to exist before
|
users=users,
|
||||||
# they get the "subscribe" notification, and the latter so
|
)
|
||||||
# they can manage the new stream.
|
|
||||||
# Realm admins already have all created private streams.
|
|
||||||
realm_admin_ids = [user.id for user in realm.get_admin_users_and_bots()]
|
|
||||||
new_users_ids = [user.id for user in users if (user.id, stream.id) in new_streams and
|
|
||||||
user.id not in realm_admin_ids]
|
|
||||||
send_stream_creation_event(stream, new_users_ids)
|
|
||||||
|
|
||||||
stream_ids = {stream.id for stream in streams}
|
stream_ids = {stream.id for stream in streams}
|
||||||
recent_traffic = get_streams_traffic(stream_ids=stream_ids)
|
recent_traffic = get_streams_traffic(stream_ids=stream_ids)
|
||||||
|
@ -2972,6 +2966,25 @@ def bulk_add_subs_to_db_with_logging(
|
||||||
if not stream.invite_only]
|
if not stream.invite_only]
|
||||||
return new_occupied_streams
|
return new_occupied_streams
|
||||||
|
|
||||||
|
def send_stream_creation_events_for_private_streams(
|
||||||
|
realm: Realm,
|
||||||
|
streams: Iterable[Stream],
|
||||||
|
new_streams: Set[Tuple[int, int]],
|
||||||
|
users: List[UserProfile],
|
||||||
|
) -> None:
|
||||||
|
for stream in streams:
|
||||||
|
if not stream.is_public():
|
||||||
|
# Users newly added to invite-only streams
|
||||||
|
# need a `create` notification. The former, because
|
||||||
|
# they need the stream to exist before
|
||||||
|
# they get the "subscribe" notification, and the latter so
|
||||||
|
# they can manage the new stream.
|
||||||
|
# Realm admins already have all created private streams.
|
||||||
|
realm_admin_ids = [user.id for user in realm.get_admin_users_and_bots()]
|
||||||
|
new_users_ids = [user.id for user in users if (user.id, stream.id) in new_streams and
|
||||||
|
user.id not in realm_admin_ids]
|
||||||
|
send_stream_creation_event(stream, new_users_ids)
|
||||||
|
|
||||||
def send_peer_add_events(
|
def send_peer_add_events(
|
||||||
realm: Realm,
|
realm: Realm,
|
||||||
users: List[UserProfile],
|
users: List[UserProfile],
|
||||||
|
|
Loading…
Reference in New Issue