streams: Add get_metadata_access_streams_via_group_ids.

This commit is contained in:
Shubham Padia
2025-03-20 10:31:36 +00:00
committed by Tim Abbott
parent 139679cdb1
commit b62d51f0ae

View File

@@ -1798,3 +1798,19 @@ def send_stream_deletion_event(
stream_ids=[stream.id for stream in streams],
)
send_event_on_commit(realm, stream_deletion_event, user_ids)
def get_metadata_access_streams_via_group_ids(
group_ids: list[int], realm: Realm
) -> QuerySet[Stream]:
"""
Given a list of group ids, we will return streams that contains
those group ids as a value for one of the group permission settings
that can grant metadata access.
"""
return Stream.objects.filter(
Q(can_add_subscribers_group_id__in=group_ids)
| Q(can_administer_channel_group_id__in=group_ids)
| Q(can_subscribe_group_id__in=group_ids),
realm_id=realm.id,
)