attachments.py 900 B

1234567891011121314151617181920212223
  1. from rest_framework import viewsets
  2. from rest_framework.response import Response
  3. from django.core.exceptions import PermissionDenied
  4. from django.utils.translation import ugettext as _
  5. from misago.acl import add_acl
  6. from misago.threads.serializers import AttachmentSerializer, NewAttachmentSerializer
  7. IMAGE_EXTENSIONS = ('jpg', 'jpeg', 'png', 'gif')
  8. class AttachmentViewSet(viewsets.ViewSet):
  9. def create(self, request):
  10. if not request.user.acl_cache['max_attachment_size']:
  11. raise PermissionDenied(_("You don't have permission to upload new files."))
  12. serializer = NewAttachmentSerializer(data=request.data, context={'request': request})
  13. serializer.is_valid(raise_exception=True)
  14. attachment = serializer.save()
  15. add_acl(request.user, attachment)
  16. return Response(AttachmentSerializer(attachment, context={'user': request.user}).data)