mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 10:26:28 +00:00
do_delete_user: Preserve date_joined value of the user.
This commit is contained in:
committed by
Tim Abbott
parent
444bb6d0e9
commit
30ccb76e19
@@ -1215,6 +1215,7 @@ def do_delete_user(user_profile: UserProfile) -> None:
|
||||
)
|
||||
user_id = user_profile.id
|
||||
realm = user_profile.realm
|
||||
date_joined = user_profile.date_joined
|
||||
personal_recipient = user_profile.recipient
|
||||
|
||||
with transaction.atomic():
|
||||
@@ -1232,6 +1233,7 @@ def do_delete_user(user_profile: UserProfile) -> None:
|
||||
full_name=f"Deleted User {user_id}",
|
||||
active=False,
|
||||
is_mirror_dummy=True,
|
||||
force_date_joined=date_joined,
|
||||
)
|
||||
subs_to_recreate = [
|
||||
Subscription(
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional, Union
|
||||
|
||||
import orjson
|
||||
@@ -85,8 +86,13 @@ def create_user_profile(
|
||||
tutorial_status: str = UserProfile.TUTORIAL_WAITING,
|
||||
enter_sends: bool = False,
|
||||
force_id: Optional[int] = None,
|
||||
force_date_joined: Optional[datetime] = None,
|
||||
) -> UserProfile:
|
||||
now = timezone_now()
|
||||
if force_date_joined is None:
|
||||
date_joined = timezone_now()
|
||||
else:
|
||||
date_joined = force_date_joined
|
||||
|
||||
email = UserManager.normalize_email(email)
|
||||
|
||||
extra_kwargs = {}
|
||||
@@ -97,8 +103,8 @@ def create_user_profile(
|
||||
is_staff=False,
|
||||
is_active=active,
|
||||
full_name=full_name,
|
||||
last_login=now,
|
||||
date_joined=now,
|
||||
last_login=date_joined,
|
||||
date_joined=date_joined,
|
||||
realm=realm,
|
||||
is_bot=bool(bot_type),
|
||||
bot_type=bot_type,
|
||||
@@ -141,6 +147,7 @@ def create_user(
|
||||
default_all_public_streams: Optional[bool] = None,
|
||||
source_profile: Optional[UserProfile] = None,
|
||||
force_id: Optional[int] = None,
|
||||
force_date_joined: Optional[datetime] = None,
|
||||
enable_marketing_emails: Optional[bool] = None,
|
||||
) -> UserProfile:
|
||||
user_profile = create_user_profile(
|
||||
@@ -155,6 +162,7 @@ def create_user(
|
||||
tos_version,
|
||||
timezone,
|
||||
force_id=force_id,
|
||||
force_date_joined=force_date_joined,
|
||||
)
|
||||
user_profile.avatar_source = avatar_source
|
||||
user_profile.timezone = timezone
|
||||
|
||||
@@ -2039,6 +2039,7 @@ class DeleteUserTest(ZulipTestCase):
|
||||
hamlet = self.example_user("hamlet")
|
||||
hamlet_personal_recipient = hamlet.recipient
|
||||
hamlet_user_id = hamlet.id
|
||||
hamlet_date_joined = hamlet.date_joined
|
||||
|
||||
self.send_personal_message(cordelia, hamlet)
|
||||
self.send_personal_message(hamlet, cordelia)
|
||||
@@ -2072,6 +2073,7 @@ class DeleteUserTest(ZulipTestCase):
|
||||
)
|
||||
self.assertEqual(replacement_dummy_user.is_mirror_dummy, True)
|
||||
self.assertEqual(replacement_dummy_user.is_active, False)
|
||||
self.assertEqual(replacement_dummy_user.date_joined, hamlet_date_joined)
|
||||
|
||||
self.assertEqual(Message.objects.filter(id__in=personal_message_ids_to_hamlet).count(), 0)
|
||||
# Huddle messages from hamlet should have been deleted, but messages of other participants should
|
||||
|
||||
Reference in New Issue
Block a user