22 lines
729 B
Python
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()
|