X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=filex%2Fuploadhandler.py;h=0f5bfb3e38dfa095e00479ddfa9bce4446bca642;hb=a0070644fd09063d4222ca3142f3e920924c0bea;hp=20a1339f216d3e0adaa690fa511bff5f56ca6fcf;hpb=9b5f7c38b0213c78beb5c34d821b0562f6a1946a;p=qcg-portal.git diff --git a/filex/uploadhandler.py b/filex/uploadhandler.py index 20a1339..0f5bfb3 100644 --- a/filex/uploadhandler.py +++ b/filex/uploadhandler.py @@ -1,5 +1,8 @@ +from functools import wraps + from django.core.files.uploadedfile import UploadedFile from django.core.files.uploadhandler import FileUploadHandler, StopUpload, StopFutureHandlers +from django.views.decorators.csrf import csrf_exempt, csrf_protect from filex.ftp import FTPOperation @@ -35,3 +38,13 @@ class FtpUploadHandler(FileUploadHandler): return UploadedFile(name=self.file_name, size=file_size, charset=self.charset, content_type=self.content_type, content_type_extra=self.content_type_extra) + + +def with_ftp_upload_handler(view_func): + @wraps(view_func) + def wrapped_view(request, *args, **kwargs): + request.upload_handlers = [FtpUploadHandler(request)] + + return csrf_protect(view_func)(request, *args, **kwargs) + + return csrf_exempt(wrapped_view)