mirror of
https://github.com/zulip/zulip.git
synced 2025-11-14 02:48:00 +00:00
zerver: Replace log_event with RealmAuditLog in do_change_user_email.
This replaces the ancient file logging approach for the auditable password change event with the database audit log.
This commit is contained in:
@@ -652,7 +652,6 @@ def do_deactivate_stream(stream, log=True):
|
|||||||
|
|
||||||
def do_change_user_email(user_profile, new_email):
|
def do_change_user_email(user_profile, new_email):
|
||||||
# type: (UserProfile, Text) -> None
|
# type: (UserProfile, Text) -> None
|
||||||
old_email = user_profile.email
|
|
||||||
user_profile.email = new_email
|
user_profile.email = new_email
|
||||||
user_profile.save(update_fields=["email"])
|
user_profile.save(update_fields=["email"])
|
||||||
|
|
||||||
@@ -660,10 +659,10 @@ def do_change_user_email(user_profile, new_email):
|
|||||||
new_email=new_email)
|
new_email=new_email)
|
||||||
send_event(dict(type='realm_user', op='update', person=payload),
|
send_event(dict(type='realm_user', op='update', person=payload),
|
||||||
active_user_ids(user_profile.realm))
|
active_user_ids(user_profile.realm))
|
||||||
|
event_time = timezone.now()
|
||||||
log_event({'type': 'user_email_changed',
|
RealmAuditLog.objects.create(realm=user_profile.realm, acting_user=user_profile,
|
||||||
'old_email': old_email,
|
modified_user=user_profile, event_type='user_email_changed',
|
||||||
'new_email': new_email})
|
event_time=event_time)
|
||||||
|
|
||||||
def do_start_email_change_process(user_profile, new_email):
|
def do_start_email_change_process(user_profile, new_email):
|
||||||
# type: (UserProfile, Text) -> None
|
# type: (UserProfile, Text) -> None
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from zerver.lib.actions import do_create_user, do_deactivate_user, \
|
from zerver.lib.actions import do_create_user, do_deactivate_user, \
|
||||||
do_activate_user, do_reactivate_user, do_change_password
|
do_activate_user, do_reactivate_user, do_change_password, \
|
||||||
|
do_change_user_email
|
||||||
from zerver.lib.test_classes import ZulipTestCase
|
from zerver.lib.test_classes import ZulipTestCase
|
||||||
from zerver.models import RealmAuditLog, get_realm
|
from zerver.models import RealmAuditLog, get_realm
|
||||||
|
|
||||||
@@ -38,3 +39,15 @@ class TestChangePassword(ZulipTestCase):
|
|||||||
self.assertEqual(RealmAuditLog.objects.filter(event_type='user_change_password',
|
self.assertEqual(RealmAuditLog.objects.filter(event_type='user_change_password',
|
||||||
event_time__gte=now).count(), 1)
|
event_time__gte=now).count(), 1)
|
||||||
self.assertIsNone(validate_password(password, user))
|
self.assertIsNone(validate_password(password, user))
|
||||||
|
|
||||||
|
class TestChangeEmail(ZulipTestCase):
|
||||||
|
def test_change_email(self):
|
||||||
|
# type: () -> None
|
||||||
|
realm = get_realm('zulip')
|
||||||
|
now = timezone.now()
|
||||||
|
user = do_create_user('email', 'password', realm, 'full_name', 'short_name')
|
||||||
|
email = 'test@example.com'
|
||||||
|
do_change_user_email(user, email)
|
||||||
|
self.assertEqual(RealmAuditLog.objects.filter(event_type='user_email_changed',
|
||||||
|
event_time__gte=now).count(), 1)
|
||||||
|
self.assertEqual(email, user.email)
|
||||||
|
|||||||
Reference in New Issue
Block a user