mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 23:13:25 +00:00
realm_emoji: Stop swallowing all exceptions from upload_emoji_image.
Putting all of the logic in a `finally` block is equivalent to a bare `except` block, which silently consumes all exceptions. Move only the most-necessary parts into the except; this lets `BadImageError` exceptions from `zerver/lib/upload.py` to escape, allowing better the generic "Image file upload failed" to be replaced with a more specific message. It also allows unexpected exceptions, as the previous commit resolved, to escape and 500. This lets them be detected and resolved, rather than give users a silently bad experience.
This commit is contained in:
committed by
Tim Abbott
parent
96a5fa9d78
commit
a40b3e1118
@@ -7908,7 +7908,7 @@ def notify_realm_emoji(realm: Realm) -> None:
|
||||
|
||||
def check_add_realm_emoji(
|
||||
realm: Realm, name: str, author: UserProfile, image_file: IO[bytes]
|
||||
) -> Optional[RealmEmoji]:
|
||||
) -> RealmEmoji:
|
||||
try:
|
||||
realm_emoji = RealmEmoji(realm=realm, name=name, author=author)
|
||||
realm_emoji.full_clean()
|
||||
@@ -7931,12 +7931,10 @@ def check_add_realm_emoji(
|
||||
finally:
|
||||
if not emoji_uploaded_successfully:
|
||||
realm_emoji.delete()
|
||||
return None
|
||||
else:
|
||||
realm_emoji.file_name = emoji_file_name
|
||||
realm_emoji.is_animated = is_animated
|
||||
realm_emoji.save(update_fields=["file_name", "is_animated"])
|
||||
notify_realm_emoji(realm_emoji.realm)
|
||||
realm_emoji.file_name = emoji_file_name
|
||||
realm_emoji.is_animated = is_animated
|
||||
realm_emoji.save(update_fields=["file_name", "is_animated"])
|
||||
notify_realm_emoji(realm_emoji.realm)
|
||||
return realm_emoji
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user