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