soft-deactivation: Log users which were soft deactivate/reactivated.

This commit is contained in:
Aditya Bansal
2017-08-16 08:39:06 +05:30
committed by Tim Abbott
parent f5713297c4
commit 34d30706da
2 changed files with 18 additions and 0 deletions

View File

@@ -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]

View File

@@ -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,