zilencer: Sync name and authentication_methods on RemoteRealm.

This commit is contained in:
Mateusz Mandera 2023-11-29 23:48:46 +01:00 committed by Tim Abbott
parent 4ef6b7cc44
commit 9b1a495e2c
5 changed files with 38 additions and 1 deletions

View File

@ -7,7 +7,7 @@ import requests
from django.conf import settings
from django.forms.models import model_to_dict
from django.utils.translation import gettext as _
from pydantic import UUID4, BaseModel, ConfigDict, field_validator
from pydantic import UUID4, BaseModel, ConfigDict, Field, field_validator
from analytics.models import InstallationCount, RealmCount
from version import ZULIP_VERSION
@ -36,10 +36,13 @@ class RealmDataForAnalytics(BaseModel):
id: int
host: str
url: str
name: str = ""
org_type: int = 0
date_created: float
deactivated: bool
authentication_methods: Dict[str, bool] = Field(default_factory=dict)
uuid: UUID4
uuid_owner_secret: str
@ -224,6 +227,8 @@ def get_realms_info_for_push_bouncer(realm_id: Optional[int] = None) -> List[Rea
deactivated=realm.deactivated,
date_created=realm.date_created.timestamp(),
org_type=realm.org_type,
name=realm.name,
authentication_methods=realm.authentication_methods_dict(),
)
for realm in realms
]

View File

@ -984,7 +984,9 @@ class AnalyticsBouncerTest(BouncerTestCase):
"uuid",
"uuid_owner_secret",
"host",
"name",
"org_type",
"authentication_methods",
"realm_date_created",
"registration_deactivated",
"realm_deactivated",
@ -997,7 +999,9 @@ class AnalyticsBouncerTest(BouncerTestCase):
"uuid": realm.uuid,
"uuid_owner_secret": realm.uuid_owner_secret,
"host": realm.host,
"name": realm.name,
"org_type": realm.org_type,
"authentication_methods": realm.authentication_methods_dict(),
"realm_date_created": realm.date_created,
"registration_deactivated": False,
"realm_deactivated": False,

View File

@ -0,0 +1,22 @@
# Generated by Django 4.2.7 on 2023-11-29 22:43
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("zilencer", "0039_remoterealm_org_type"),
]
operations = [
migrations.AddField(
model_name="remoterealm",
name="authentication_methods",
field=models.JSONField(default=dict),
),
migrations.AddField(
model_name="remoterealm",
name="name",
field=models.TextField(default=""),
),
]

View File

@ -104,6 +104,10 @@ class RemoteRealm(models.Model):
# Value obtained's from the remote server's realm.host.
host = models.TextField()
name = models.TextField(default="")
authentication_methods = models.JSONField(default=dict)
org_type = models.PositiveSmallIntegerField(
default=Realm.ORG_TYPES["unspecified"]["id"],
choices=[(t["id"], t["name"]) for t in Realm.ORG_TYPES.values()],

View File

@ -543,6 +543,8 @@ def update_remote_realm_data_for_server(
realm_deactivated=realm.deactivated,
realm_date_created=timestamp_to_datetime(realm.date_created),
org_type=realm.org_type,
name=realm.name,
authentication_methods=realm.authentication_methods,
)
for realm in server_realms_info
if realm.uuid not in already_registered_uuids