zulip/zerver/lib
Sahil Batra ffb7744974 settings: Allow settings to be set to system groups only in production.
We use the already existing server level setting to only allow
settings to be set to system groups, not a named user defined
group as well, in production. But we allow to settings to be set
to any named or anonymous user group in tests and development server.

"can_mention_group" setting can be set to user defined groups
because some of the realms already do that in production.

The existing server level setting is also renamed to make it clear
that both user defined groups and anonymous groups are not allowed
if that setting is set to False.

This commit also changes the error message to be consistent for the
case when a setting cannot be set to user defined groups as per
server level and setting and when a particular setting cannot be set
to user defined groups due to the configuration of that particular
setting. For this we add a new class SystemGroupRequiredError in
exceptions.py so that we need not re-write the error message in
multiple places.
2024-07-12 09:51:49 -07:00
..
markdown help-settings-links: Fix for new invitations section in users tab. 2024-07-08 13:56:18 -07:00
upload thumbnail: Use a consistent set of supported image types. 2024-07-11 07:31:39 -07:00
url_preview ruff: Fix RUF022 __all__ is not sorted. 2024-03-01 09:30:04 -08:00
webhooks docs: Update Django links to our current version. 2024-05-24 10:18:37 -07:00
__init__.py
addressee.py i18n: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
alert_words.py models: Extract zerver.models.alert_words. 2023-12-16 22:08:44 -08:00
async_utils.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
attachments.py django: Switch to .alias() instead .annotate() where possible. 2024-07-11 09:26:23 -07:00
avatar_hash.py avatars: Encode version into the filename. 2024-07-07 14:40:07 -07:00
avatar.py avatars: Encode version into the filename. 2024-07-07 14:40:07 -07:00
bot_config.py ruff: Fix UP032 Use f-string instead of format call. 2023-08-02 15:58:55 -07:00
bot_lib.py refactor: Rename huddle to direct_message_group in non API. 2024-07-04 07:56:31 -07:00
bot_storage.py ruff: Fix UP032 Use f-string instead of format call. 2024-03-21 08:59:17 -07:00
bulk_create.py streams: Set creator for some initial streams in populate_db. 2024-05-15 11:21:46 -07:00
cache_helpers.py caches: Only take the realm_id, not the Realm, as a cache key function. 2024-03-04 16:35:57 -08:00
cache.py documentation: Move OpenGraph description updating out of middleware. 2024-04-16 10:41:45 -07:00
camo.py typing: Apply trivial none-checks with assertions as necessary. 2022-06-23 19:25:48 -07:00
ccache.py requirements: Upgrade Python requirements. 2024-01-29 10:41:54 -08:00
compatibility.py ruff: Fix FURB167 Use of regular expression alias. 2024-06-30 22:37:15 -07:00
context_managers.py context_managers: Open file in write mode in lockfile_nonblocking. 2024-03-06 10:35:02 -08:00
create_user.py create_user: Copy the avatar before announcing it. 2024-06-20 23:06:08 -04:00
data_types.py python: Elide unnecessary list wrappers. 2023-09-13 12:41:23 -07:00
db_connections.py db: Split reset_queries into a new module zerver.lib.db_connections. 2024-04-17 16:49:03 -07:00
db.py db: Split reset_queries into a new module zerver.lib.db_connections. 2024-04-17 16:49:03 -07:00
debug.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
default_streams.py streams: Pass stream_weekly_traffic field in stream objects. 2023-08-06 18:06:42 -07:00
dev_ldap_directory.py python: Reformat with Ruff formatter. 2024-02-29 17:07:16 -08:00
digest.py email-digest: Update translated strings for stream to channel rename. 2024-04-24 14:35:05 -07:00
display_recipient.py refactor: Rename huddle to direct_message_group in non API. 2024-07-04 07:56:31 -07:00
domains.py python: Mark regexes as raw strings. 2024-04-26 12:30:31 -07:00
drafts.py i18n: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
email_mirror_helpers.py python: Mark regexes as raw strings. 2024-04-26 12:30:31 -07:00
email_mirror.py email_mirror: Also strip "AW:" from subject. 2024-07-11 11:16:24 -07:00
email_notifications.py refactor: Rename huddle to direct_message_group in non API. 2024-07-04 07:56:31 -07:00
email_validation.py email_validation: Merge two implementations of a disposable-email check. 2024-02-27 10:19:23 -08:00
emoji_utils.py emoji: Match emoji sequences in markdown. 2023-08-23 16:18:15 -07:00
emoji.py thumbnailing: Switch to libvips, from PIL/pillow. 2024-06-26 16:42:57 -07:00
event_schema.py settings: Add two realm settings to restrict direct messages. 2024-07-08 19:34:17 -07:00
events.py events: Optimize computing can_create_streams and related fields. 2024-06-24 10:00:08 -07:00
exceptions.py settings: Allow settings to be set to system groups only in production. 2024-07-12 09:51:49 -07:00
export.py django: Switch to .alias() instead .annotate() where possible. 2024-07-11 09:26:23 -07:00
external_accounts.py python: Reformat with Ruff formatter. 2024-02-29 17:07:16 -08:00
fix_unreads.py ruff: Fix PERF401 Use a list comprehension to create a transformed list. 2023-08-07 17:23:55 -07:00
generate_test_data.py requirements: Upgrade Python requirements. 2024-01-29 10:41:54 -08:00
github.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
home.py sentry: Untangle from page_params. 2024-06-22 18:53:56 -07:00
html_diff.py html_diff: Fix lxml import. 2023-03-05 14:46:28 -08:00
html_to_text.py documentation: Move OpenGraph description updating out of middleware. 2024-04-16 10:41:45 -07:00
i18n.py i18n: Fix default language for users created via API/LDAP. 2023-10-01 21:10:13 +02:00
import_realm.py refactor: Rename Huddle Django model class to DirectMessageGroup. 2024-07-07 21:31:30 -07:00
initial_password.py initial_password: Add explicit development environment assertion. 2022-03-21 12:05:59 -07:00
integrations.py integrations: Remove Google Code-in integration. 2024-07-02 10:04:34 -07:00
invites.py invites: Make notify_invites_changed transaction-safe. 2024-05-02 14:23:04 -07:00
logging_util.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
management.py management: Disable Sentry for management commands run interactively. 2024-05-24 10:30:16 -07:00
mdiff.py node_tests: Move to web/tests. 2023-02-23 16:04:17 -08:00
mention.py mention: Use NamedUserGroup objects in mention code. 2024-04-26 17:03:09 -07:00
message_cache.py python: Avoid relying on Collection supertype of QuerySet. 2024-04-16 23:02:16 -07:00
message.py django: Switch to .alias() instead .annotate() where possible. 2024-07-11 09:26:23 -07:00
migrate.py migration: Make 'rename_indexes_constraints' a lib function. 2023-12-06 18:19:20 -08:00
mime_types.py mime_types: Add audio and image types missing from Python library. 2024-06-20 15:29:20 -07:00
mobile_auth_otp.py
muted_users.py python: Consistently use from…import for datetime. 2023-12-05 12:01:18 -08:00
name_restrictions.py integrations: Remove Google Code-in integration. 2024-07-02 10:04:34 -07:00
narrow_helpers.py narrow: Move python-only implemenation into its own file. 2024-04-16 09:48:11 -07:00
narrow_predicate.py search: Add is:followed filter. 2024-06-17 18:22:50 -07:00
narrow.py refactor: Rename Huddle Django model class to DirectMessageGroup. 2024-07-07 21:31:30 -07:00
notes.py requirements: Upgrade Python requirements. 2024-01-29 10:41:54 -08:00
notification_data.py mention: Use NamedUserGroup objects in mention code. 2024-04-26 17:03:09 -07:00
onboarding_steps.py docs: Add subsystem doc for 'Onboarding Steps'. 2024-06-18 09:39:50 -07:00
onboarding.py django: Switch to .alias() instead .annotate() where possible. 2024-07-11 09:26:23 -07:00
outgoing_http.py outgoing_http: Support fractional-second timeouts. 2024-03-15 15:34:12 -07:00
outgoing_webhook.py message: Split MessageDict and friends into its own file. 2024-02-14 12:27:03 -08:00
partial.py partial: Replace returns plugin with an annotation. 2024-04-29 17:14:41 -07:00
per_request_cache.py per-request caches: Add per_request_cache library. 2023-08-11 11:09:34 -07:00
presence.py presence: Return last_update_id=-1 on zephyr mirror realm. 2024-06-07 13:57:40 -07:00
profile.py profile: Strengthen decorator types using ParamSpec. 2022-04-14 12:44:35 -07:00
push_notifications.py refactor: Rename huddle to direct_message_group in non API. 2024-07-04 07:56:31 -07:00
pysa.py
query_helpers.py requirements: Upgrade Python requirements. 2024-06-27 15:31:43 -07:00
queue.py rabbitmq: Support non-/ vhosts. 2024-05-31 15:41:19 -07:00
rate_limiter.py codespell: Fix spelling mistakes caught by codespell. 2024-05-31 14:32:33 -07:00
realm_description.py markdown: Refactor out additional properties added to Message. 2021-06-24 18:14:53 -07:00
realm_icon.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
realm_logo.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
recipient_parsing.py i18n: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
recipient_users.py refactor: Rename Huddle Django model class to DirectMessageGroup. 2024-07-07 21:31:30 -07:00
redis_utils.py rate_limiter: Extract KEY_PREFIX to redis_utils. 2024-04-19 10:25:34 -07:00
remote_server.py analytics: Send ZULIP_MERGE_BASE to the bouncer. 2024-06-23 07:44:11 -07:00
request.py documentation: Move OpenGraph description updating out of middleware. 2024-04-16 10:41:45 -07:00
response.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
rest.py python: Reformat with Ruff formatter. 2024-02-29 17:07:16 -08:00
retention.py refactor: Rename huddle to direct_message_group in non API. 2024-07-04 07:56:31 -07:00
safe_session_cached_db.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
scheduled_messages.py models: Extract zerver.models.scheduled_jobs. 2023-12-16 22:08:44 -08:00
scim_filter.py docs: Update Django links to our current version. 2024-05-24 10:18:37 -07:00
scim.py scim: Fix PLR1704 Redefining argument with the local name path. 2024-06-27 15:31:43 -07:00
send_email.py emails: Replace occurrences of uri with url in email templates. 2024-05-24 11:18:35 -07:00
server_initialization.py models: New PresenceSequence model and UserPresence.last_update_id col. 2024-06-02 22:08:28 -07:00
sessions.py models: Extract zerver.models.users. 2023-12-16 22:08:44 -08:00
singleton_bmemcached.py requirements: Upgrade Python requirements. 2023-04-03 22:39:21 -07:00
soft_deactivation.py django: Switch to .alias() instead .annotate() where possible. 2024-07-11 09:26:23 -07:00
sounds.py actions: Split out zerver.lib.sounds. 2022-04-14 14:26:40 -07:00
sqlalchemy_utils.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
storage.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
stream_color.py streams: Extract stream_color library. 2022-03-14 18:01:36 -07:00
stream_subscription.py python: Avoid relying on Collection supertype of QuerySet. 2024-04-16 23:02:16 -07:00
stream_topic.py message_send: Handle notifications for UNMUTED topic in a muted stream. 2023-03-06 19:15:45 -08:00
stream_traffic.py python: Consistently use from…import for datetime. 2023-12-05 12:01:18 -08:00
streams.py django: Switch to .alias() instead .annotate() where possible. 2024-07-11 09:26:23 -07:00
string_validation.py i18n: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
subdomains.py python: Consistently use from…import for urllib.parse. 2023-12-05 13:03:07 -08:00
subscription_info.py i18n: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
templates.py requirements: Upgrade Python requirements. 2023-04-03 22:39:21 -07:00
test_classes.py add_subscriptions_backend: Add 'transaction.atomic' decorator. 2024-07-10 10:50:37 -07:00
test_console_output.py test_console_output: Mark regexes as raw strings. 2024-04-16 14:51:39 -07:00
test_data.source.txt Rename default branch to ‘main’. 2021-09-06 12:56:35 -07:00
test_fixtures.py ruff: Fix ANN204 missing return type annotation for __init__. 2022-11-16 09:29:11 -08:00
test_helpers.py refactor: Rename Huddle Django model class to DirectMessageGroup. 2024-07-07 21:31:30 -07:00
test_runner.py partial: Replace returns plugin with an annotation. 2024-04-29 17:14:41 -07:00
tex.py katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
thumbnail.py thumbnail: Lock down which formats we parse. 2024-07-11 07:31:39 -07:00
timeout.py timeout: Rename to unsafe_timeout. 2024-04-18 11:50:38 -07:00
timestamp.py python: Consistently use from…import for datetime. 2023-12-05 12:01:18 -08:00
timezone.py ruff: Fix UP033 Use @functools.cache. 2024-04-01 18:32:52 -07:00
topic_sqlalchemy.py search: Add is:followed filter. 2024-06-17 18:22:50 -07:00
topic.py topic: Move sqlalchemy methods into their own file. 2024-04-16 09:48:11 -07:00
transfer.py thumbnail: Use a consistent set of supported image types. 2024-07-11 07:31:39 -07:00
typed_endpoint_validators.py corporate-upgrade: Migrate to @typed_endpoint. 2024-07-08 16:14:57 -07:00
typed_endpoint.py realm: Migrate "PATCH /realm" endpoint to typed_endpoint. 2024-05-22 17:20:37 -07:00
types.py custom_profile: Convert to typed_endpoint. 2024-06-19 18:29:28 -07:00
url_decoding.py url_decoding: Add 'is_same_server_message_link' function. 2024-06-17 10:42:32 -07:00
url_encoding.py refactor: Rename huddle to direct_message_group in non API. 2024-07-04 07:56:31 -07:00
url_redirects.py help: Move 'channels-and-topics' to 'introduction-to-topics'. 2024-05-07 16:51:48 -07:00
user_agent.py ruff: Fix FURB167 Use of regular expression alias. 2024-06-30 22:37:15 -07:00
user_counts.py python: Elide unnecessary list wrappers. 2023-09-13 12:41:23 -07:00
user_groups.py settings: Allow settings to be set to system groups only in production. 2024-07-12 09:51:49 -07:00
user_message.py user_message: Use INSERT ... ON CONFLICT for historical UM creation. 2024-03-26 10:52:37 -07:00
user_status.py api: Add "users/<int:user_id>/status" endpoint. 2024-05-22 18:07:22 -07:00
user_topics.py user_topics: Handle IntegrityError during bulk insertion. 2024-06-17 11:21:30 -07:00
users.py refactor: Rename huddle to direct_message_group in non API. 2024-07-04 07:56:31 -07:00
utils.py events: Fix realm_upload_quota_mib value to be in MiB. 2024-04-15 15:08:56 -07:00
validator.py support: Set discounted price instead percentage for customers. 2024-05-16 02:18:43 -07:00
widget.py todo: Require space after colon to separate task title from description. 2024-04-30 12:36:42 -07:00
zcommand.py zcommand: Rename night->dark and day->light in the color scheme backend. 2024-06-30 22:45:26 -07:00
zephyr.py
zulip_update_announcements.py refactor: Rename huddle to direct_message_group in non API. 2024-07-04 07:56:31 -07:00