mirror of
https://github.com/zulip/zulip.git
synced 2025-10-24 16:43:57 +00:00
groups: Use NamedUserGroup for all queries.
This commit is contained in:
@@ -27,12 +27,12 @@ from zerver.lib.timestamp import floor_to_day
|
||||
from zerver.lib.upload import upload_message_attachment_from_request
|
||||
from zerver.models import (
|
||||
Client,
|
||||
NamedUserGroup,
|
||||
Realm,
|
||||
RealmAuditLog,
|
||||
Recipient,
|
||||
Stream,
|
||||
Subscription,
|
||||
UserGroup,
|
||||
UserProfile,
|
||||
)
|
||||
from zerver.models.groups import SystemGroups
|
||||
@@ -114,7 +114,7 @@ class Command(BaseCommand):
|
||||
force_date_joined=installation_time,
|
||||
)
|
||||
|
||||
administrators_user_group = UserGroup.objects.get(
|
||||
administrators_user_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.ADMINISTRATORS, realm=realm, is_system_group=True
|
||||
)
|
||||
stream = Stream.objects.create(
|
||||
|
||||
@@ -126,7 +126,7 @@ def set_default_for_realm_permission_group_settings(realm: Realm) -> None:
|
||||
|
||||
for setting_name, permission_configuration in Realm.REALM_PERMISSION_GROUP_SETTINGS.items():
|
||||
group_name = permission_configuration.default_group_name
|
||||
setattr(realm, setting_name, system_groups_dict[group_name])
|
||||
setattr(realm, setting_name, system_groups_dict[group_name].usergroup_ptr)
|
||||
|
||||
realm.save(update_fields=list(Realm.REALM_PERMISSION_GROUP_SETTINGS.keys()))
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ from zerver.models import (
|
||||
ArchivedAttachment,
|
||||
Attachment,
|
||||
Message,
|
||||
NamedUserGroup,
|
||||
Realm,
|
||||
RealmAuditLog,
|
||||
RealmAuthenticationMethod,
|
||||
@@ -658,7 +659,7 @@ def do_change_realm_plan_type(
|
||||
# If downgrading to a plan that no longer has access to change
|
||||
# can_access_all_users_group, set it back to the default
|
||||
# value.
|
||||
everyone_system_group = UserGroup.objects.get(
|
||||
everyone_system_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.EVERYONE, realm=realm, is_system_group=True
|
||||
)
|
||||
if realm.can_access_all_users_group_id != everyone_system_group.id:
|
||||
|
||||
@@ -7,13 +7,13 @@ from zerver.lib.create_user import create_user_profile, get_display_email_addres
|
||||
from zerver.lib.initial_password import initial_password
|
||||
from zerver.lib.streams import render_stream_description
|
||||
from zerver.models import (
|
||||
NamedUserGroup,
|
||||
Realm,
|
||||
RealmAuditLog,
|
||||
RealmUserDefault,
|
||||
Recipient,
|
||||
Stream,
|
||||
Subscription,
|
||||
UserGroup,
|
||||
UserGroupMembership,
|
||||
UserProfile,
|
||||
)
|
||||
@@ -127,10 +127,10 @@ def bulk_create_users(
|
||||
|
||||
Subscription.objects.bulk_create(subscriptions_to_create)
|
||||
|
||||
full_members_system_group = UserGroup.objects.get(
|
||||
full_members_system_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.FULL_MEMBERS, realm=realm, is_system_group=True
|
||||
)
|
||||
members_system_group = UserGroup.objects.get(
|
||||
members_system_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.MEMBERS, realm=realm, is_system_group=True
|
||||
)
|
||||
group_memberships_to_create: List[UserGroupMembership] = []
|
||||
@@ -198,7 +198,7 @@ def bulk_create_streams(realm: Realm, stream_dict: Dict[str, Dict[str, Any]]) ->
|
||||
existing_streams = {
|
||||
name.lower() for name in Stream.objects.filter(realm=realm).values_list("name", flat=True)
|
||||
}
|
||||
administrators_user_group = UserGroup.objects.get(
|
||||
administrators_user_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.ADMINISTRATORS, is_system_group=True, realm=realm
|
||||
)
|
||||
streams_to_create: List[Stream] = []
|
||||
|
||||
@@ -194,7 +194,7 @@ def fix_upload_links(data: TableData, message_table: TableName) -> None:
|
||||
|
||||
def fix_streams_can_remove_subscribers_group_column(data: TableData, realm: Realm) -> None:
|
||||
table = get_db_table(Stream)
|
||||
admins_group = UserGroup.objects.get(
|
||||
admins_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.ADMINISTRATORS, realm=realm, is_system_group=True
|
||||
)
|
||||
for stream in data[table]:
|
||||
@@ -1781,7 +1781,7 @@ def add_users_to_system_user_groups(
|
||||
user_profiles: List[UserProfile],
|
||||
role_system_groups_dict: Dict[int, NamedUserGroup],
|
||||
) -> None:
|
||||
full_members_system_group = UserGroup.objects.get(
|
||||
full_members_system_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.FULL_MEMBERS,
|
||||
realm=realm,
|
||||
is_system_group=True,
|
||||
|
||||
@@ -23,6 +23,7 @@ from zerver.lib.types import APIStreamDict
|
||||
from zerver.lib.user_groups import is_user_in_group
|
||||
from zerver.models import (
|
||||
DefaultStreamGroup,
|
||||
NamedUserGroup,
|
||||
Realm,
|
||||
RealmAuditLog,
|
||||
Recipient,
|
||||
@@ -142,7 +143,7 @@ def create_stream_if_needed(
|
||||
)
|
||||
|
||||
if can_remove_subscribers_group is None:
|
||||
can_remove_subscribers_group = UserGroup.objects.get(
|
||||
can_remove_subscribers_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.ADMINISTRATORS, is_system_group=True, realm=realm
|
||||
)
|
||||
|
||||
|
||||
@@ -99,6 +99,7 @@ from zerver.lib.webhooks.common import (
|
||||
from zerver.models import (
|
||||
Client,
|
||||
Message,
|
||||
NamedUserGroup,
|
||||
PushDeviceToken,
|
||||
Reaction,
|
||||
Realm,
|
||||
@@ -106,7 +107,6 @@ from zerver.models import (
|
||||
Recipient,
|
||||
Stream,
|
||||
Subscription,
|
||||
UserGroup,
|
||||
UserGroupMembership,
|
||||
UserMessage,
|
||||
UserProfile,
|
||||
@@ -1364,7 +1364,7 @@ Output:
|
||||
history_public_to_subscribers = get_default_value_for_history_public_to_subscribers(
|
||||
realm, invite_only, history_public_to_subscribers
|
||||
)
|
||||
administrators_user_group = UserGroup.objects.get(
|
||||
administrators_user_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.ADMINISTRATORS, realm=realm, is_system_group=True
|
||||
)
|
||||
|
||||
@@ -1972,7 +1972,7 @@ Output:
|
||||
self.send_personal_message(shiva, polonius)
|
||||
self.send_huddle_message(aaron, [polonius, zoe])
|
||||
|
||||
members_group = UserGroup.objects.get(name="role:members", realm=realm)
|
||||
members_group = NamedUserGroup.objects.get(name="role:members", realm=realm)
|
||||
do_change_realm_permission_group_setting(
|
||||
realm, "can_access_all_users_group", members_group, acting_user=None
|
||||
)
|
||||
|
||||
@@ -256,7 +256,7 @@ def user_groups_in_realm_serialized(realm: Realm) -> List[UserGroupDict]:
|
||||
Django's ORM doesn't properly support the left join between
|
||||
UserGroup and UserGroupMembership that we need.
|
||||
"""
|
||||
realm_groups = UserGroup.objects.filter(realm=realm)
|
||||
realm_groups = NamedUserGroup.objects.filter(realm=realm)
|
||||
group_dicts: Dict[int, UserGroupDict] = {}
|
||||
for user_group in realm_groups:
|
||||
group_dicts[user_group.id] = dict(
|
||||
@@ -403,7 +403,9 @@ def get_recursive_subgroups_for_groups(
|
||||
|
||||
|
||||
def get_role_based_system_groups_dict(realm: Realm) -> Dict[str, NamedUserGroup]:
|
||||
system_groups = NamedUserGroup.objects.filter(realm=realm, is_system_group=True)
|
||||
system_groups = NamedUserGroup.objects.filter(realm=realm, is_system_group=True).select_related(
|
||||
"usergroup_ptr"
|
||||
)
|
||||
system_groups_name_dict = {}
|
||||
for group in system_groups:
|
||||
system_groups_name_dict[group.name] = group
|
||||
|
||||
@@ -90,7 +90,7 @@ from zerver.lib.validator import (
|
||||
check_union,
|
||||
to_non_negative_int,
|
||||
)
|
||||
from zerver.models import Realm, Stream, UserGroup, UserProfile
|
||||
from zerver.models import NamedUserGroup, Realm, Stream, UserProfile
|
||||
from zerver.models.users import get_system_bot
|
||||
|
||||
|
||||
@@ -580,7 +580,7 @@ def add_subscriptions_backend(
|
||||
can_remove_subscribers_group_default_name = Stream.stream_permission_group_settings[
|
||||
"can_remove_subscribers_group"
|
||||
].default_group_name
|
||||
can_remove_subscribers_group = UserGroup.objects.get(
|
||||
can_remove_subscribers_group = NamedUserGroup.objects.get(
|
||||
name=can_remove_subscribers_group_default_name,
|
||||
realm=user_profile.realm,
|
||||
is_system_group=True,
|
||||
|
||||
Reference in New Issue
Block a user