mirror of https://github.com/zulip/zulip.git
RealmAuditLog: Add old_value and new_value fields and update User_email_change
migrations lint fix
This commit is contained in:
parent
5d1de4c037
commit
7db965b400
|
@ -114,6 +114,8 @@ def do_change_user_delivery_email(
|
|||
) -> None:
|
||||
delete_user_profile_caches([user_profile], user_profile.realm_id)
|
||||
|
||||
old_email = user_profile.delivery_email # Armazene o email antigo
|
||||
|
||||
user_profile.delivery_email = new_email
|
||||
if user_profile.email_address_is_realm_public():
|
||||
user_profile.email = new_email
|
||||
|
@ -121,22 +123,16 @@ def do_change_user_delivery_email(
|
|||
else:
|
||||
user_profile.save(update_fields=["delivery_email"])
|
||||
|
||||
# We notify all the users who have access to delivery email.
|
||||
# Notificar os usuários com acesso ao email de entrega.
|
||||
payload = dict(user_id=user_profile.id, delivery_email=new_email)
|
||||
event = dict(type="realm_user", op="update", person=payload)
|
||||
delivery_email_visible_user_ids = get_users_with_access_to_real_email(user_profile)
|
||||
|
||||
send_event_on_commit(user_profile.realm, event, delivery_email_visible_user_ids)
|
||||
|
||||
if user_profile.avatar_source == UserProfile.AVATAR_FROM_GRAVATAR:
|
||||
# If the user is using Gravatar to manage their email address,
|
||||
# their Gravatar just changed, and we need to notify other
|
||||
# clients.
|
||||
notify_avatar_url_change(user_profile)
|
||||
|
||||
if user_profile.email_address_is_realm_public():
|
||||
# Additionally, if we're also changing the publicly visible
|
||||
# email, we send a new_email event as well.
|
||||
send_user_email_update_event(user_profile)
|
||||
|
||||
event_time = timezone_now()
|
||||
|
@ -146,6 +142,8 @@ def do_change_user_delivery_email(
|
|||
modified_user=user_profile,
|
||||
event_type=AuditLogEventType.USER_EMAIL_CHANGED,
|
||||
event_time=event_time,
|
||||
# store the old and new email in the extra_data field
|
||||
extra_data={"old_value": old_email, "new_value": new_email},
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
# Generated by Django 5.0.9 on 2024-11-03 17:19
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("zerver", "0623_merge_20241030_1835"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="realmauditlog",
|
||||
name="new_value",
|
||||
field=models.TextField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="realmauditlog",
|
||||
name="old_value",
|
||||
field=models.TextField(blank=True, null=True),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,12 @@
|
|||
# Generated by Django 5.0.9 on 2024-11-17 18:21
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("zerver", "0624_alter_realmexport_tarball_size_bytes"),
|
||||
("zerver", "0624_realmauditlog_new_value_realmauditlog_old_value"),
|
||||
]
|
||||
|
||||
operations = []
|
|
@ -232,6 +232,9 @@ class RealmAuditLog(AbstractRealmAuditLog):
|
|||
on_delete=CASCADE,
|
||||
)
|
||||
event_last_message_id = models.IntegerField(null=True)
|
||||
# This field is used to store the old and new values of the field that was changed.
|
||||
old_value = models.TextField(null=True, blank=True)
|
||||
new_value = models.TextField(null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["id"]
|
||||
|
|
|
@ -278,6 +278,7 @@ class TestRealmAuditLog(ZulipTestCase):
|
|||
def test_change_email(self) -> None:
|
||||
now = timezone_now()
|
||||
user = self.example_user("hamlet")
|
||||
old_email = user.delivery_email # store the old email
|
||||
new_email = "test@example.com"
|
||||
do_change_user_delivery_email(user, new_email, acting_user=user)
|
||||
self.assertEqual(
|
||||
|
@ -287,8 +288,6 @@ class TestRealmAuditLog(ZulipTestCase):
|
|||
1,
|
||||
)
|
||||
self.assertEqual(new_email, user.delivery_email)
|
||||
|
||||
# Test the RealmAuditLog stringification
|
||||
audit_entry = RealmAuditLog.objects.get(
|
||||
event_type=AuditLogEventType.USER_EMAIL_CHANGED, event_time__gte=now
|
||||
)
|
||||
|
@ -297,6 +296,9 @@ class TestRealmAuditLog(ZulipTestCase):
|
|||
f"<RealmAuditLog: {AuditLogEventType.USER_EMAIL_CHANGED.name} "
|
||||
)
|
||||
)
|
||||
# verify the extra_data field
|
||||
self.assertEqual(audit_entry.extra_data["old_value"], old_email)
|
||||
self.assertEqual(audit_entry.extra_data["new_value"], new_email)
|
||||
|
||||
def test_change_avatar_source(self) -> None:
|
||||
now = timezone_now()
|
||||
|
|
Loading…
Reference in New Issue