mirror of
https://github.com/zulip/zulip.git
synced 2025-11-08 16:01:58 +00:00
actions.py: Clear ScheduledJobs of users in do_deactivate_{user,realm}.
This commit is contained in:
@@ -524,6 +524,7 @@ def do_deactivate_realm(realm):
|
||||
# bumped to the login screen, where they'll get a realm deactivation
|
||||
# notice when they try to log in.
|
||||
delete_user_sessions(user)
|
||||
clear_followup_emails_queue(user.email)
|
||||
|
||||
def do_reactivate_realm(realm):
|
||||
# type: (Realm) -> None
|
||||
@@ -539,6 +540,7 @@ def do_deactivate_user(user_profile, _cascade=True):
|
||||
user_profile.save(update_fields=["is_active"])
|
||||
|
||||
delete_user_sessions(user_profile)
|
||||
clear_followup_emails_queue(user_profile.email)
|
||||
|
||||
event_time = timezone_now()
|
||||
RealmAuditLog.objects.create(realm=user_profile.realm, modified_user=user_profile,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from __future__ import absolute_import
|
||||
from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import ujson
|
||||
|
||||
from django.http import HttpResponse
|
||||
@@ -13,10 +14,10 @@ from zerver.lib.actions import (
|
||||
do_deactivate_realm,
|
||||
)
|
||||
|
||||
from zerver.lib.send_email import send_future_email
|
||||
from zerver.lib.test_classes import ZulipTestCase
|
||||
from zerver.lib.test_helpers import tornado_redirected_to_list
|
||||
from zerver.models import get_realm, Realm, UserProfile
|
||||
|
||||
from zerver.models import get_realm, Realm, UserProfile, ScheduledJob
|
||||
|
||||
class RealmTest(ZulipTestCase):
|
||||
def assert_user_profile_cache_gets_new_name(self, user_profile, new_realm_name):
|
||||
@@ -140,6 +141,14 @@ class RealmTest(ZulipTestCase):
|
||||
user = self.example_user('hamlet')
|
||||
self.assertTrue(user.realm.deactivated)
|
||||
|
||||
def test_do_deactivate_realm_clears_scheduled_jobs(self):
|
||||
# type: () -> None
|
||||
user = self.example_user('hamlet')
|
||||
send_future_email('template_prefix', user.email, delay=datetime.timedelta(hours=1))
|
||||
self.assertEqual(ScheduledJob.objects.count(), 1)
|
||||
do_deactivate_realm(user.realm)
|
||||
self.assertEqual(ScheduledJob.objects.count(), 0)
|
||||
|
||||
def test_do_deactivate_realm_on_deactived_realm(self):
|
||||
# type: () -> None
|
||||
"""Ensure early exit is working in realm deactivation"""
|
||||
|
||||
@@ -22,10 +22,11 @@ from zerver.lib.test_runner import slow
|
||||
from zerver.models import UserProfile, Recipient, \
|
||||
Realm, RealmDomain, UserActivity, \
|
||||
get_user, get_realm, get_client, get_stream, \
|
||||
Message, get_context_for_message
|
||||
Message, get_context_for_message, ScheduledJob
|
||||
|
||||
from zerver.lib.avatar import avatar_url
|
||||
from zerver.lib.email_mirror import create_missed_message_address
|
||||
from zerver.lib.send_email import send_future_email
|
||||
from zerver.lib.actions import (
|
||||
get_emails_from_user_ids,
|
||||
do_deactivate_user,
|
||||
@@ -34,6 +35,8 @@ from zerver.lib.actions import (
|
||||
)
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
import datetime
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
@@ -339,6 +342,14 @@ class ActivateTest(ZulipTestCase):
|
||||
result = self.client_post('/json/users/hamlet@zulip.com/reactivate')
|
||||
self.assert_json_error(result, 'Insufficient permission')
|
||||
|
||||
def test_clear_scheduled_jobs(self):
|
||||
# type: () -> None
|
||||
user = self.example_user('hamlet')
|
||||
send_future_email('template_prefix', user.email, delay=datetime.timedelta(hours=1))
|
||||
self.assertEqual(ScheduledJob.objects.count(), 1)
|
||||
do_deactivate_user(user)
|
||||
self.assertEqual(ScheduledJob.objects.count(), 0)
|
||||
|
||||
class GetProfileTest(ZulipTestCase):
|
||||
|
||||
def common_update_pointer(self, email, pointer):
|
||||
|
||||
Reference in New Issue
Block a user