mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from __future__ import absolute_import
 | 
						|
 | 
						|
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
 | 
						|
    delete_message_image(attachment.path_id)
 | 
						|
    attachment.delete()
 |