mirror of
https://github.com/zulip/zulip.git
synced 2025-11-10 17:07:07 +00:00
Add populate_db support for deactivating users.
Prior to this commit, populate_db would crash if you had ever deactivated a user in your development instance's message log. (imported from commit 227b2c0226a46ef5680443d3dbf62a13ce961e64)
This commit is contained in:
@@ -116,13 +116,14 @@ def delete_all_user_sessions():
|
||||
for session in Session.objects.all():
|
||||
delete_session(session)
|
||||
|
||||
def do_deactivate(user_profile):
|
||||
def do_deactivate(user_profile, log=True):
|
||||
user_profile.is_active = False;
|
||||
user_profile.set_unusable_password()
|
||||
user_profile.save(update_fields=["is_active", "password"])
|
||||
|
||||
delete_user_sessions(user_profile)
|
||||
|
||||
if log:
|
||||
log_event({'type': 'user_deactivated',
|
||||
'timestamp': time.time(),
|
||||
'user': user_profile.email,
|
||||
|
||||
@@ -8,7 +8,7 @@ from zephyr.models import Message, UserProfile, Stream, Recipient, Client, \
|
||||
Subscription, Huddle, get_huddle, Realm, UserMessage, \
|
||||
get_huddle_hash, clear_database, get_client, get_user_profile_by_id
|
||||
from zephyr.lib.actions import do_send_message, set_default_streams, \
|
||||
do_activate_user, do_change_password
|
||||
do_activate_user, do_deactivate, do_change_password
|
||||
from zephyr.lib.parallel import run_parallel
|
||||
from django.db import transaction, connection
|
||||
from django.conf import settings
|
||||
@@ -538,6 +538,10 @@ def restore_saved_messages():
|
||||
users_by_id[user_profile.id] = user_profile
|
||||
users[old_message["user"]] = user_profile
|
||||
continue
|
||||
elif message_type == "user_deactivated":
|
||||
user_profile = users[old_message["user"]]
|
||||
do_deactivate(user_profile, log=False)
|
||||
continue
|
||||
elif message_type == "user_change_password":
|
||||
# Just handle these the slow way
|
||||
user_profile = users[old_message["user"]]
|
||||
|
||||
Reference in New Issue
Block a user