mirror of
https://github.com/zulip/zulip.git
synced 2025-10-27 01:53:59 +00:00
user_groups: Add server level setting disallow anonymous groups for settings.
This commit adds a server level setting which controls whether the setting can be set to anonymous user groups. We only allow it in the tests for now because the UI can only handle named user groups.
This commit is contained in:
@@ -2,6 +2,7 @@ from contextlib import contextmanager
|
||||
from dataclasses import dataclass
|
||||
from typing import Collection, Dict, Iterable, Iterator, List, Mapping, Optional, TypedDict, Union
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import connection, transaction
|
||||
from django.db.models import F, Prefetch, QuerySet
|
||||
from django.utils.timezone import now as timezone_now
|
||||
@@ -712,6 +713,7 @@ def get_server_supported_permission_settings() -> ServerSupportedPermissionSetti
|
||||
|
||||
def parse_group_setting_value(
|
||||
setting_value: Union[int, AnonymousSettingGroupDict],
|
||||
setting_name: str,
|
||||
) -> Union[int, AnonymousSettingGroupDict]:
|
||||
if isinstance(setting_value, int):
|
||||
return setting_value
|
||||
@@ -719,6 +721,13 @@ def parse_group_setting_value(
|
||||
if len(setting_value.direct_members) == 0 and len(setting_value.direct_subgroups) == 1:
|
||||
return setting_value.direct_subgroups[0]
|
||||
|
||||
if not settings.ALLOW_ANONYMOUS_GROUP_VALUED_SETTINGS:
|
||||
raise JsonableError(
|
||||
_("{setting_name} can only be set to a single named user group.").format(
|
||||
setting_name=setting_name
|
||||
)
|
||||
)
|
||||
|
||||
return setting_value
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user