mirror of
https://github.com/zulip/zulip.git
synced 2025-11-09 16:37:23 +00:00
soft-deactivation: Log users which were soft deactivate/reactivated.
This commit is contained in:
committed by
Tim Abbott
parent
f5713297c4
commit
34d30706da
@@ -1,14 +1,27 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
|
import logging
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models import Max
|
from django.db.models import Max
|
||||||
|
from django.conf import settings
|
||||||
from django.utils.timezone import now as timezone_now
|
from django.utils.timezone import now as timezone_now
|
||||||
from typing import DefaultDict, List
|
from typing import DefaultDict, List
|
||||||
|
|
||||||
from zerver.models import UserProfile, UserMessage, RealmAuditLog, \
|
from zerver.models import UserProfile, UserMessage, RealmAuditLog, \
|
||||||
Subscription, Message, Recipient, UserActivity, Realm
|
Subscription, Message, Recipient, UserActivity, Realm
|
||||||
|
|
||||||
|
log_format = "%(asctime)s: %(message)s"
|
||||||
|
logging.basicConfig(format=log_format)
|
||||||
|
|
||||||
|
formatter = logging.Formatter(log_format)
|
||||||
|
file_handler = logging.FileHandler(settings.SOFT_DEACTIVATION_LOG_PATH)
|
||||||
|
file_handler.setFormatter(formatter)
|
||||||
|
|
||||||
|
logger = logging.getLogger('')
|
||||||
|
logger.setLevel(logging.INFO)
|
||||||
|
logger.addHandler(file_handler)
|
||||||
|
|
||||||
def filter_by_subscription_history(
|
def filter_by_subscription_history(
|
||||||
user_profile, all_stream_messages, all_stream_subscription_logs):
|
user_profile, all_stream_messages, all_stream_subscription_logs):
|
||||||
# type: (UserProfile, DefaultDict[int, List[Message]], DefaultDict[int, List[RealmAuditLog]]) -> List[UserMessage]
|
# type: (UserProfile, DefaultDict[int, List[Message]], DefaultDict[int, List[RealmAuditLog]]) -> List[UserMessage]
|
||||||
@@ -162,6 +175,8 @@ def do_soft_deactivate_user(user_profile):
|
|||||||
user_profile.save(update_fields=[
|
user_profile.save(update_fields=[
|
||||||
'long_term_idle',
|
'long_term_idle',
|
||||||
'last_active_message_id'])
|
'last_active_message_id'])
|
||||||
|
logger.info('Soft Deactivated user %s (%s)' %
|
||||||
|
(user_profile.id, user_profile.email))
|
||||||
|
|
||||||
def do_soft_deactivate_users(users):
|
def do_soft_deactivate_users(users):
|
||||||
# type: (List[UserProfile]) -> None
|
# type: (List[UserProfile]) -> None
|
||||||
@@ -191,6 +206,8 @@ def maybe_catch_up_soft_deactivated_user(user_profile):
|
|||||||
event_type='user_soft_activated',
|
event_type='user_soft_activated',
|
||||||
event_time=timezone_now()
|
event_time=timezone_now()
|
||||||
)
|
)
|
||||||
|
logger.info('Soft Reactivated user %s (%s)' %
|
||||||
|
(user_profile.id, user_profile.email))
|
||||||
|
|
||||||
def get_users_for_soft_deactivation(realm, inactive_for_days):
|
def get_users_for_soft_deactivation(realm, inactive_for_days):
|
||||||
# type: (Realm, int) -> List[UserProfile]
|
# type: (Realm, int) -> List[UserProfile]
|
||||||
|
|||||||
@@ -1003,6 +1003,7 @@ ZULIP_PATHS = [
|
|||||||
("DIGEST_LOG_PATH", "/var/log/zulip/digest.log"),
|
("DIGEST_LOG_PATH", "/var/log/zulip/digest.log"),
|
||||||
("ANALYTICS_LOG_PATH", "/var/log/zulip/analytics.log"),
|
("ANALYTICS_LOG_PATH", "/var/log/zulip/analytics.log"),
|
||||||
("API_KEY_ONLY_WEBHOOK_LOG_PATH", "/var/log/zulip/webhooks_errors.log"),
|
("API_KEY_ONLY_WEBHOOK_LOG_PATH", "/var/log/zulip/webhooks_errors.log"),
|
||||||
|
("SOFT_DEACTIVATION_LOG_PATH", "/var/log/zulip/soft_deactivation.log"),
|
||||||
]
|
]
|
||||||
|
|
||||||
# The Event log basically logs most significant database changes,
|
# The Event log basically logs most significant database changes,
|
||||||
|
|||||||
Reference in New Issue
Block a user