mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 22:43:42 +00:00
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from __future__ import absolute_import
|
|
|
|
from django.db import transaction
|
|
|
|
from zerver.models import UserProfile, UserMessage, RealmAuditLog
|
|
|
|
from django.utils.timezone import now as timezone_now
|
|
|
|
from typing import List
|
|
|
|
def do_soft_deactivate_user(user_profile):
|
|
# type: (UserProfile) -> None
|
|
user_profile.last_active_message_id = UserMessage.objects.filter(
|
|
user_profile=user_profile).order_by(
|
|
'-message__id')[0].message_id
|
|
user_profile.long_term_idle = True
|
|
user_profile.save(update_fields=[
|
|
'long_term_idle',
|
|
'last_active_message_id'])
|
|
|
|
def do_soft_deactivate_users(users):
|
|
# type: (List[UserProfile]) -> None
|
|
with transaction.atomic():
|
|
realm_logs = []
|
|
for user in users:
|
|
do_soft_deactivate_user(user)
|
|
event_time = timezone_now()
|
|
log = RealmAuditLog(
|
|
realm=user.realm,
|
|
modified_user=user,
|
|
event_type='user_soft_deactivated',
|
|
event_time=event_time
|
|
)
|
|
realm_logs.append(log)
|
|
RealmAuditLog.objects.bulk_create(realm_logs)
|