Files
zulip/zerver/migrations/0743_realm_require_e2ee_push_notifications.py
Prakhar Pratyush fc6cd9a966 settings: Add require_e2ee_push_notifications realm setting.
This commit adds a realm setting:
"Require end-to-end encryption for push notification content".

This commit just involves backend & UI changes to add the setting,
the impact of this setting is in the next commit.

Fixes part of #35370.
2025-07-28 17:06:59 -07:00

39 lines
1.3 KiB
Python

# Generated by Django 5.2.4 on 2025-07-28 18:58
from django.conf import settings
from django.db import migrations, models
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
from django.db.migrations.state import StateApps
def update_require_e2ee_push_notifications(
apps: StateApps, schema_editor: BaseDatabaseSchemaEditor
) -> None:
Realm = apps.get_model("zerver", "Realm")
# We use 'getattr' with a default value to allow this migration
# to run in development environment when PUSH_NOTIFICATION_REDACT_CONTENT
# setting is removed in the future.
require_e2ee = getattr(settings, "PUSH_NOTIFICATION_REDACT_CONTENT", False)
if require_e2ee:
Realm.objects.update(require_e2ee_push_notifications=require_e2ee)
class Migration(migrations.Migration):
dependencies = [
("zerver", "0742_usermessage_zerver_usermessage_is_private_unread_message_id"),
]
operations = [
migrations.AddField(
model_name="realm",
name="require_e2ee_push_notifications",
field=models.BooleanField(db_default=False, default=False),
),
migrations.RunPython(
update_require_e2ee_push_notifications,
elidable=True,
reverse_code=migrations.RunPython.noop,
),
]