mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 12:03:46 +00:00 
			
		
		
		
	The typos and their corrections were found with the aid of https://github.com/lucasdemarchi/codespell.
		
			
				
	
	
		
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | |
| from django.utils.translation import ugettext as _
 | |
| from typing import Any, Dict, List
 | |
| 
 | |
| from zerver.lib.request import JsonableError
 | |
| from zerver.lib.upload import delete_message_image
 | |
| from zerver.models import Attachment, UserProfile
 | |
| 
 | |
| def user_attachments(user_profile):
 | |
|     # type: (UserProfile) -> List[Dict[str, Any]]
 | |
|     attachments = Attachment.objects.filter(owner=user_profile).prefetch_related('messages')
 | |
|     return [a.to_dict() for a in attachments]
 | |
| 
 | |
| def access_attachment_by_id(user_profile, attachment_id, needs_owner=False):
 | |
|     # type: (UserProfile, int, bool) -> Attachment
 | |
|     query = Attachment.objects.filter(id=attachment_id)
 | |
|     if needs_owner:
 | |
|         query = query.filter(owner=user_profile)
 | |
| 
 | |
|     attachment = query.first()
 | |
|     if attachment is None:
 | |
|         raise JsonableError(_("Invalid attachment"))
 | |
|     return attachment
 | |
| 
 | |
| def remove_attachment(user_profile, attachment):
 | |
|     # type: (UserProfile, Attachment) -> None
 | |
|     try:
 | |
|         delete_message_image(attachment.path_id)
 | |
|     except Exception:
 | |
|         raise JsonableError(_("An error occurred while deleting the attachment. Please try again later."))
 | |
|     attachment.delete()
 |