user_group: Move UserGroupMembershipDetails from lib/streams.py.

This commit is contained in:
Shubham Padia
2025-02-21 18:40:59 +00:00
committed by Tim Abbott
parent 63a4aea7a8
commit f6bb990b91
9 changed files with 18 additions and 20 deletions

View File

@@ -8,9 +8,12 @@ from django.conf import settings
from django.db.models import Q
from django_stubs_ext import StrPromise
from zerver.lib.streams import UserGroupMembershipDetails, get_content_access_streams
from zerver.lib.streams import get_content_access_streams
from zerver.lib.topic import get_first_message_for_user_in_topic
from zerver.lib.user_groups import get_root_id_annotated_recursive_subgroups_for_groups
from zerver.lib.user_groups import (
UserGroupMembershipDetails,
get_root_id_annotated_recursive_subgroups_for_groups,
)
from zerver.lib.users import get_inaccessible_user_ids
from zerver.models import NamedUserGroup, UserProfile
from zerver.models.groups import SystemGroups

View File

@@ -28,7 +28,6 @@ from zerver.lib.stream_subscription import (
num_subscribers_for_stream_id,
)
from zerver.lib.streams import (
UserGroupMembershipDetails,
can_access_stream_history,
get_web_public_streams_queryset,
is_user_in_groups_granting_content_access,
@@ -41,6 +40,7 @@ from zerver.lib.topic import (
)
from zerver.lib.types import UserDisplayRecipient
from zerver.lib.user_groups import (
UserGroupMembershipDetails,
get_recursive_membership_groups,
user_has_permission_for_group_setting,
)

View File

@@ -25,6 +25,7 @@ from zerver.lib.string_validation import check_stream_name
from zerver.lib.timestamp import datetime_to_timestamp
from zerver.lib.types import AnonymousSettingGroupDict, APIStreamDict
from zerver.lib.user_groups import (
UserGroupMembershipDetails,
get_recursive_group_members,
get_recursive_membership_groups,
get_role_based_system_groups_dict,
@@ -549,11 +550,6 @@ def check_for_exactly_one_stream_arg(stream_id: int | None, stream: str | None)
raise IncompatibleParametersError(["stream_id", "stream"])
@dataclass
class UserGroupMembershipDetails:
user_recursive_group_ids: set[int] | None
def user_has_content_access(
user_profile: UserProfile,
stream: Stream,

View File

@@ -19,7 +19,6 @@ from zerver.lib.stream_subscription import (
)
from zerver.lib.stream_traffic import get_average_weekly_stream_traffic, get_streams_traffic
from zerver.lib.streams import (
UserGroupMembershipDetails,
get_group_setting_value_dict_for_streams,
get_setting_values_for_group_settings,
get_stream_post_policy_value_based_on_group_setting,
@@ -38,7 +37,7 @@ from zerver.lib.types import (
SubscriptionInfo,
SubscriptionStreamDict,
)
from zerver.lib.user_groups import get_recursive_membership_groups
from zerver.lib.user_groups import UserGroupMembershipDetails, get_recursive_membership_groups
from zerver.models import Realm, Stream, Subscription, UserProfile
from zerver.models.streams import get_all_streams

View File

@@ -76,6 +76,11 @@ class LockedUserGroupContext:
recursive_subgroups: list[NamedUserGroup]
@dataclass
class UserGroupMembershipDetails:
user_recursive_group_ids: set[int] | None
def has_user_group_access_for_subgroup(
user_group: NamedUserGroup,
user_profile: UserProfile,

View File

@@ -13,13 +13,13 @@ from zerver.actions.streams import do_change_stream_group_based_setting, do_chan
from zerver.actions.user_groups import check_add_user_group
from zerver.lib.message import has_message_access
from zerver.lib.streams import (
UserGroupMembershipDetails,
can_access_stream_metadata_user_ids,
update_stream_active_status_for_realm,
)
from zerver.lib.test_classes import ZulipTestCase, get_topic_messages
from zerver.lib.test_helpers import queries_captured
from zerver.lib.url_encoding import near_stream_message_url
from zerver.lib.user_groups import UserGroupMembershipDetails
from zerver.models import Message, NamedUserGroup, Stream, UserMessage, UserProfile
from zerver.models.groups import SystemGroups
from zerver.models.realms import get_realm

View File

@@ -72,7 +72,6 @@ from zerver.lib.stream_traffic import (
from zerver.lib.streams import (
StreamDict,
StreamsCategorizedByPermissionsForAddingSubscribers,
UserGroupMembershipDetails,
access_stream_by_id,
access_stream_by_name,
can_access_stream_history,
@@ -108,7 +107,7 @@ from zerver.lib.types import (
NeverSubscribedStreamDict,
SubscriptionInfo,
)
from zerver.lib.user_groups import is_user_in_group
from zerver.lib.user_groups import UserGroupMembershipDetails, is_user_in_group
from zerver.models import (
Attachment,
DefaultStream,

View File

@@ -20,14 +20,10 @@ from zerver.actions.invites import (
from zerver.decorator import require_member_or_admin
from zerver.lib.exceptions import InvitationError, JsonableError, OrganizationOwnerRequiredError
from zerver.lib.response import json_success
from zerver.lib.streams import (
UserGroupMembershipDetails,
access_stream_by_id,
get_streams_to_which_user_cannot_add_subscribers,
)
from zerver.lib.streams import access_stream_by_id, get_streams_to_which_user_cannot_add_subscribers
from zerver.lib.typed_endpoint import ApiParamConfig, PathOnly, typed_endpoint
from zerver.lib.typed_endpoint_validators import check_int_in_validator
from zerver.lib.user_groups import access_user_group_for_update
from zerver.lib.user_groups import UserGroupMembershipDetails, access_user_group_for_update
from zerver.models import MultiuseInvite, NamedUserGroup, PreregistrationUser, Stream, UserProfile
# Convert INVITATION_LINK_VALIDITY_DAYS into minutes.

View File

@@ -62,7 +62,6 @@ from zerver.lib.retention import parse_message_retention_days
from zerver.lib.stream_traffic import get_streams_traffic
from zerver.lib.streams import (
StreamDict,
UserGroupMembershipDetails,
access_default_stream_group_by_id,
access_stream_by_id,
access_stream_by_name,
@@ -90,6 +89,7 @@ from zerver.lib.typed_endpoint_validators import check_color
from zerver.lib.types import AnonymousSettingGroupDict
from zerver.lib.user_groups import (
GroupSettingChangeRequest,
UserGroupMembershipDetails,
access_user_group_for_setting,
get_group_setting_value_for_api,
get_role_based_system_groups_dict,