mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 16:14:02 +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.lib.upload import upload_message_attachment_from_request
|
||||||
from zerver.models import (
|
from zerver.models import (
|
||||||
Client,
|
Client,
|
||||||
|
NamedUserGroup,
|
||||||
Realm,
|
Realm,
|
||||||
RealmAuditLog,
|
RealmAuditLog,
|
||||||
Recipient,
|
Recipient,
|
||||||
Stream,
|
Stream,
|
||||||
Subscription,
|
Subscription,
|
||||||
UserGroup,
|
|
||||||
UserProfile,
|
UserProfile,
|
||||||
)
|
)
|
||||||
from zerver.models.groups import SystemGroups
|
from zerver.models.groups import SystemGroups
|
||||||
@@ -114,7 +114,7 @@ class Command(BaseCommand):
|
|||||||
force_date_joined=installation_time,
|
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
|
name=SystemGroups.ADMINISTRATORS, realm=realm, is_system_group=True
|
||||||
)
|
)
|
||||||
stream = Stream.objects.create(
|
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():
|
for setting_name, permission_configuration in Realm.REALM_PERMISSION_GROUP_SETTINGS.items():
|
||||||
group_name = permission_configuration.default_group_name
|
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()))
|
realm.save(update_fields=list(Realm.REALM_PERMISSION_GROUP_SETTINGS.keys()))
|
||||||
|
|
||||||
|
@@ -24,6 +24,7 @@ from zerver.models import (
|
|||||||
ArchivedAttachment,
|
ArchivedAttachment,
|
||||||
Attachment,
|
Attachment,
|
||||||
Message,
|
Message,
|
||||||
|
NamedUserGroup,
|
||||||
Realm,
|
Realm,
|
||||||
RealmAuditLog,
|
RealmAuditLog,
|
||||||
RealmAuthenticationMethod,
|
RealmAuthenticationMethod,
|
||||||
@@ -658,7 +659,7 @@ def do_change_realm_plan_type(
|
|||||||
# If downgrading to a plan that no longer has access to change
|
# If downgrading to a plan that no longer has access to change
|
||||||
# can_access_all_users_group, set it back to the default
|
# can_access_all_users_group, set it back to the default
|
||||||
# value.
|
# value.
|
||||||
everyone_system_group = UserGroup.objects.get(
|
everyone_system_group = NamedUserGroup.objects.get(
|
||||||
name=SystemGroups.EVERYONE, realm=realm, is_system_group=True
|
name=SystemGroups.EVERYONE, realm=realm, is_system_group=True
|
||||||
)
|
)
|
||||||
if realm.can_access_all_users_group_id != everyone_system_group.id:
|
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.initial_password import initial_password
|
||||||
from zerver.lib.streams import render_stream_description
|
from zerver.lib.streams import render_stream_description
|
||||||
from zerver.models import (
|
from zerver.models import (
|
||||||
|
NamedUserGroup,
|
||||||
Realm,
|
Realm,
|
||||||
RealmAuditLog,
|
RealmAuditLog,
|
||||||
RealmUserDefault,
|
RealmUserDefault,
|
||||||
Recipient,
|
Recipient,
|
||||||
Stream,
|
Stream,
|
||||||
Subscription,
|
Subscription,
|
||||||
UserGroup,
|
|
||||||
UserGroupMembership,
|
UserGroupMembership,
|
||||||
UserProfile,
|
UserProfile,
|
||||||
)
|
)
|
||||||
@@ -127,10 +127,10 @@ def bulk_create_users(
|
|||||||
|
|
||||||
Subscription.objects.bulk_create(subscriptions_to_create)
|
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
|
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
|
name=SystemGroups.MEMBERS, realm=realm, is_system_group=True
|
||||||
)
|
)
|
||||||
group_memberships_to_create: List[UserGroupMembership] = []
|
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 = {
|
existing_streams = {
|
||||||
name.lower() for name in Stream.objects.filter(realm=realm).values_list("name", flat=True)
|
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
|
name=SystemGroups.ADMINISTRATORS, is_system_group=True, realm=realm
|
||||||
)
|
)
|
||||||
streams_to_create: List[Stream] = []
|
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:
|
def fix_streams_can_remove_subscribers_group_column(data: TableData, realm: Realm) -> None:
|
||||||
table = get_db_table(Stream)
|
table = get_db_table(Stream)
|
||||||
admins_group = UserGroup.objects.get(
|
admins_group = NamedUserGroup.objects.get(
|
||||||
name=SystemGroups.ADMINISTRATORS, realm=realm, is_system_group=True
|
name=SystemGroups.ADMINISTRATORS, realm=realm, is_system_group=True
|
||||||
)
|
)
|
||||||
for stream in data[table]:
|
for stream in data[table]:
|
||||||
@@ -1781,7 +1781,7 @@ def add_users_to_system_user_groups(
|
|||||||
user_profiles: List[UserProfile],
|
user_profiles: List[UserProfile],
|
||||||
role_system_groups_dict: Dict[int, NamedUserGroup],
|
role_system_groups_dict: Dict[int, NamedUserGroup],
|
||||||
) -> None:
|
) -> None:
|
||||||
full_members_system_group = UserGroup.objects.get(
|
full_members_system_group = NamedUserGroup.objects.get(
|
||||||
name=SystemGroups.FULL_MEMBERS,
|
name=SystemGroups.FULL_MEMBERS,
|
||||||
realm=realm,
|
realm=realm,
|
||||||
is_system_group=True,
|
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.lib.user_groups import is_user_in_group
|
||||||
from zerver.models import (
|
from zerver.models import (
|
||||||
DefaultStreamGroup,
|
DefaultStreamGroup,
|
||||||
|
NamedUserGroup,
|
||||||
Realm,
|
Realm,
|
||||||
RealmAuditLog,
|
RealmAuditLog,
|
||||||
Recipient,
|
Recipient,
|
||||||
@@ -142,7 +143,7 @@ def create_stream_if_needed(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if can_remove_subscribers_group is None:
|
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
|
name=SystemGroups.ADMINISTRATORS, is_system_group=True, realm=realm
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -99,6 +99,7 @@ from zerver.lib.webhooks.common import (
|
|||||||
from zerver.models import (
|
from zerver.models import (
|
||||||
Client,
|
Client,
|
||||||
Message,
|
Message,
|
||||||
|
NamedUserGroup,
|
||||||
PushDeviceToken,
|
PushDeviceToken,
|
||||||
Reaction,
|
Reaction,
|
||||||
Realm,
|
Realm,
|
||||||
@@ -106,7 +107,6 @@ from zerver.models import (
|
|||||||
Recipient,
|
Recipient,
|
||||||
Stream,
|
Stream,
|
||||||
Subscription,
|
Subscription,
|
||||||
UserGroup,
|
|
||||||
UserGroupMembership,
|
UserGroupMembership,
|
||||||
UserMessage,
|
UserMessage,
|
||||||
UserProfile,
|
UserProfile,
|
||||||
@@ -1364,7 +1364,7 @@ Output:
|
|||||||
history_public_to_subscribers = get_default_value_for_history_public_to_subscribers(
|
history_public_to_subscribers = get_default_value_for_history_public_to_subscribers(
|
||||||
realm, invite_only, 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
|
name=SystemGroups.ADMINISTRATORS, realm=realm, is_system_group=True
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1972,7 +1972,7 @@ Output:
|
|||||||
self.send_personal_message(shiva, polonius)
|
self.send_personal_message(shiva, polonius)
|
||||||
self.send_huddle_message(aaron, [polonius, zoe])
|
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(
|
do_change_realm_permission_group_setting(
|
||||||
realm, "can_access_all_users_group", members_group, acting_user=None
|
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
|
Django's ORM doesn't properly support the left join between
|
||||||
UserGroup and UserGroupMembership that we need.
|
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] = {}
|
group_dicts: Dict[int, UserGroupDict] = {}
|
||||||
for user_group in realm_groups:
|
for user_group in realm_groups:
|
||||||
group_dicts[user_group.id] = dict(
|
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]:
|
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 = {}
|
system_groups_name_dict = {}
|
||||||
for group in system_groups:
|
for group in system_groups:
|
||||||
system_groups_name_dict[group.name] = group
|
system_groups_name_dict[group.name] = group
|
||||||
|
@@ -90,7 +90,7 @@ from zerver.lib.validator import (
|
|||||||
check_union,
|
check_union,
|
||||||
to_non_negative_int,
|
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
|
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_name = Stream.stream_permission_group_settings[
|
||||||
"can_remove_subscribers_group"
|
"can_remove_subscribers_group"
|
||||||
].default_group_name
|
].default_group_name
|
||||||
can_remove_subscribers_group = UserGroup.objects.get(
|
can_remove_subscribers_group = NamedUserGroup.objects.get(
|
||||||
name=can_remove_subscribers_group_default_name,
|
name=can_remove_subscribers_group_default_name,
|
||||||
realm=user_profile.realm,
|
realm=user_profile.realm,
|
||||||
is_system_group=True,
|
is_system_group=True,
|
||||||
|
Reference in New Issue
Block a user