sprint/Main/views/DownloadFileView.py
Egor Matveev d45b5e9115 move
2022-03-18 22:43:13 +03:00

22 lines
729 B
Python

from django.http import HttpResponse
from Main.models import Dump
from SprintLib.BaseView import BaseView, AccessError
from SprintLib.utils import get_bytes
class DownloadFileView(BaseView):
endpoint = "download_file"
required_login = True
dump: Dump
def get(self):
if self.dump.task:
if self.request.user == self.dump.task.creator or self.request.user.username in self.dump.task.editors:
response = HttpResponse(
get_bytes(self.dump.fs_id), content_type='application/force-download'
)
response['Content-Disposition'] = f'inline; filename={self.dump.filename}'
return response
raise AccessError()