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,17 +116,18 @@ def delete_all_user_sessions():
|
|||||||
for session in Session.objects.all():
|
for session in Session.objects.all():
|
||||||
delete_session(session)
|
delete_session(session)
|
||||||
|
|
||||||
def do_deactivate(user_profile):
|
def do_deactivate(user_profile, log=True):
|
||||||
user_profile.is_active = False;
|
user_profile.is_active = False;
|
||||||
user_profile.set_unusable_password()
|
user_profile.set_unusable_password()
|
||||||
user_profile.save(update_fields=["is_active", "password"])
|
user_profile.save(update_fields=["is_active", "password"])
|
||||||
|
|
||||||
delete_user_sessions(user_profile)
|
delete_user_sessions(user_profile)
|
||||||
|
|
||||||
log_event({'type': 'user_deactivated',
|
if log:
|
||||||
'timestamp': time.time(),
|
log_event({'type': 'user_deactivated',
|
||||||
'user': user_profile.email,
|
'timestamp': time.time(),
|
||||||
'domain': user_profile.realm.domain})
|
'user': user_profile.email,
|
||||||
|
'domain': user_profile.realm.domain})
|
||||||
|
|
||||||
notice = dict(event=dict(type="realm_user", op="remove",
|
notice = dict(event=dict(type="realm_user", op="remove",
|
||||||
person=dict(email=user_profile.email,
|
person=dict(email=user_profile.email,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from zephyr.models import Message, UserProfile, Stream, Recipient, Client, \
|
|||||||
Subscription, Huddle, get_huddle, Realm, UserMessage, \
|
Subscription, Huddle, get_huddle, Realm, UserMessage, \
|
||||||
get_huddle_hash, clear_database, get_client, get_user_profile_by_id
|
get_huddle_hash, clear_database, get_client, get_user_profile_by_id
|
||||||
from zephyr.lib.actions import do_send_message, set_default_streams, \
|
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 zephyr.lib.parallel import run_parallel
|
||||||
from django.db import transaction, connection
|
from django.db import transaction, connection
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
@@ -538,6 +538,10 @@ def restore_saved_messages():
|
|||||||
users_by_id[user_profile.id] = user_profile
|
users_by_id[user_profile.id] = user_profile
|
||||||
users[old_message["user"]] = user_profile
|
users[old_message["user"]] = user_profile
|
||||||
continue
|
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":
|
elif message_type == "user_change_password":
|
||||||
# Just handle these the slow way
|
# Just handle these the slow way
|
||||||
user_profile = users[old_message["user"]]
|
user_profile = users[old_message["user"]]
|
||||||
|
|||||||
Reference in New Issue
Block a user