actions: Convert do_delete_messages to take a Realm.

The function only used the user's realm anyway, so this is a cleaner
API.

This should also make it more convenient to permanently delete
messages manually, since one doesn't have to fetch a random user in
the realm in order to delete a message using the management shell.

No functional change.
This commit is contained in:
Tim Abbott
2019-11-12 12:20:31 -08:00
parent 6945ced76f
commit ddd1a0eb00
5 changed files with 8 additions and 8 deletions

View File

@@ -4564,7 +4564,7 @@ def do_update_message(user_profile: UserProfile, message: Message, topic_name: O
return len(changed_messages)
def do_delete_messages(user_profile: UserProfile, messages: Iterable[Message]) -> None:
def do_delete_messages(realm: Realm, messages: Iterable[Message]) -> None:
message_ids = []
for message in messages:
message_ids.append(message.id)
@@ -4590,7 +4590,7 @@ def do_delete_messages(user_profile: UserProfile, messages: Iterable[Message]) -
ums = [{'id': um.user_profile_id} for um in
UserMessage.objects.filter(message=message.id)]
move_messages_to_archive([message.id])
send_event(user_profile.realm, event, ums)
send_event(realm, event, ums)
def do_delete_messages_by_sender(user: UserProfile) -> None:
message_ids = Message.objects.filter(sender=user).values_list('id', flat=True).order_by('id')

View File

@@ -2653,7 +2653,7 @@ class EventsRegisterTest(ZulipTestCase):
msg_id = self.send_stream_message("hamlet@zulip.com", "Verona")
message = Message.objects.get(id=msg_id)
events = self.do_test(
lambda: do_delete_messages(self.user_profile, [message]),
lambda: do_delete_messages(self.user_profile.realm, [message]),
state_change_expected=True,
)
error = schema_checker('events[0]', events[0])
@@ -2675,7 +2675,7 @@ class EventsRegisterTest(ZulipTestCase):
)
message = Message.objects.get(id=msg_id)
events = self.do_test(
lambda: do_delete_messages(self.user_profile, [message]),
lambda: do_delete_messages(self.user_profile.realm, [message]),
state_change_expected=True,
)
error = schema_checker('events[0]', events[0])
@@ -2689,7 +2689,7 @@ class EventsRegisterTest(ZulipTestCase):
msg_id = self.send_stream_message("hamlet@zulip.com", "Verona")
message = Message.objects.get(id=msg_id)
self.do_test(
lambda: do_delete_messages(self.user_profile, [message]),
lambda: do_delete_messages(self.user_profile.realm, [message]),
state_change_expected=True,
)
result = fetch_initial_state_data(user_profile, None, "", client_gravatar=False)

View File

@@ -730,7 +730,7 @@ class HandlePushNotificationTest(PushNotificationTest):
'trigger': 'private_message',
}
# Now, delete the message the normal way
do_delete_messages(user_profile, [message])
do_delete_messages(user_profile.realm, [message])
with mock.patch('zerver.lib.push_notifications.uses_notification_bouncer') as mock_check, \
mock.patch('logging.error') as mock_logging_error, \

View File

@@ -1562,7 +1562,7 @@ def delete_message_backend(request: HttpRequest, user_profile: UserProfile,
message, ignored_user_message = access_message(user_profile, message_id)
validate_can_delete_message(user_profile, message)
try:
do_delete_messages(user_profile, [message])
do_delete_messages(user_profile.realm, [message])
except (Message.DoesNotExist, IntegrityError):
raise JsonableError(_("Message already deleted"))
return json_success()

View File

@@ -506,7 +506,7 @@ def delete_in_topic(request: HttpRequest, user_profile: UserProfile,
messages = [message for message in messages if message.id in
deletable_message_ids]
do_delete_messages(user_profile, messages)
do_delete_messages(user_profile.realm, messages)
return json_success()