def delete(request): """ Delete existing File/Directory. When trying to delete a Directory, the Directory has to be empty. """ # QUERY / PATH CHECK query = request.GET path = get_path(query.get('dir', '')) filename = query.get('filename', '') if path is None or filename is None: if path is None: msg = _('The requested Folder does not exist.') else: msg = _('The requested File does not exist.') messages.add_message(request, messages.ERROR, msg) return HttpResponseRedirect(reverse("fb_browse")) abs_path = os.path.join(DIRECTORY, path) if request.GET.get('filetype') != "Folder": relative_server_path = os.path.join(DIRECTORY, path, filename) try: # PRE DELETE SIGNAL filebrowser_pre_delete.send(sender=request, path=path, filename=filename) # DELETE FILE default_storage.delete(os.path.join(abs_path, filename)) # POST DELETE SIGNAL filebrowser_post_delete.send(sender=request, path=path, filename=filename) # MESSAGE & REDIRECT msg = _('The file %s was successfully deleted.') % ( filename.lower()) messages.add_message(request, messages.SUCCESS, msg) except OSError: msg = _("An error occurred") messages.add_message(request, messages.ERROR, msg) else: try: # PRE DELETE SIGNAL filebrowser_pre_delete.send(sender=request, path=path, filename=filename) # DELETE FOLDER default_storage.rmtree(os.path.join(abs_path, filename)) # POST DELETE SIGNAL filebrowser_post_delete.send(sender=request, path=path, filename=filename) # MESSAGE & REDIRECT msg = _('The folder %s was successfully deleted.') % ( filename.lower()) messages.add_message(request, messages.SUCCESS, msg) except OSError: msg = _("An error occurred") messages.add_message(request, messages.ERROR, msg) qs = query_helper(query, "", "filename,filetype") return HttpResponseRedirect(reverse("fb_browse") + qs)
def delete(request): """ Delete existing File/Directory. When trying to delete a Directory, the Directory has to be empty. """ if request.method != "POST": return HttpResponseRedirect(reverse("fb_browse")) # QUERY / PATH CHECK query = request.GET path = get_path(query.get('dir', '')) filename = query.get('filename', '') if path is None or filename is None: if path is None: msg = _('The requested Folder does not exist.') else: msg = _('The requested File does not exist.') messages.add_message(request, messages.ERROR, msg) return HttpResponseRedirect(reverse("fb_browse")) abs_path = os.path.join(get_directory(), path) normalized = os.path.normpath(os.path.join(get_directory(), path, filename)) if not normalized.startswith(get_directory()) or ".." in normalized: msg = _("An error occurred") messages.add_message(request, messages.ERROR, msg) elif request.GET.get('filetype') != "Folder": relative_server_path = os.path.join(get_directory(), path, filename) try: # PRE DELETE SIGNAL filebrowser_pre_delete.send(sender=request, path=path, filename=filename) # DELETE FILE default_storage.delete(os.path.join(abs_path, filename)) # POST DELETE SIGNAL filebrowser_post_delete.send(sender=request, path=path, filename=filename) # MESSAGE & REDIRECT msg = _('The file %s was successfully deleted.') % (filename.lower()) messages.add_message(request, messages.SUCCESS, msg) except OSError: msg = _("An error occurred") messages.add_message(request, messages.ERROR, msg) else: try: # PRE DELETE SIGNAL filebrowser_pre_delete.send(sender=request, path=path, filename=filename) # DELETE FOLDER default_storage.rmtree(os.path.join(abs_path, filename)) # POST DELETE SIGNAL filebrowser_post_delete.send(sender=request, path=path, filename=filename) # MESSAGE & REDIRECT msg = _('The folder %s was successfully deleted.') % (filename.lower()) messages.add_message(request, messages.SUCCESS, msg) except OSError: msg = _("An error occurred") messages.add_message(request, messages.ERROR, msg) qs = query_helper(query, "", "filename,filetype") return HttpResponseRedirect(reverse("fb_browse") + qs)
def delete(request): """ Delete existing File/Directory. When trying to delete a Directory, the Directory has to be empty. """ if request.method != "POST": return HttpResponseRedirect(reverse("fb_browse")) # QUERY / PATH CHECK query = request.GET path = get_path(query.get("dir", "")) filename = query.get("filename", "") if path is None or filename is None: if path is None: msg = _("The requested Folder does not exist.") else: msg = _("The requested File does not exist.") messages.add_message(request, messages.ERROR, msg) return HttpResponseRedirect(reverse("fb_browse")) abs_path = os.path.join(get_directory(), path) normalized = os.path.normpath(os.path.join(get_directory(), path, filename)) if not normalized.startswith(get_directory().strip("/")) or ".." in normalized: msg = _("An error occurred") messages.add_message(request, messages.ERROR, msg) elif request.GET.get("filetype") != "Folder": try: # PRE DELETE SIGNAL filebrowser_pre_delete.send(sender=request, path=path, filename=filename) # DELETE FILE default_storage.delete(os.path.join(abs_path, filename)) # POST DELETE SIGNAL filebrowser_post_delete.send(sender=request, path=path, filename=filename) # MESSAGE & REDIRECT msg = _("The file %s was successfully deleted.") % (filename.lower()) messages.add_message(request, messages.SUCCESS, msg) except OSError: msg = _("An error occurred") messages.add_message(request, messages.ERROR, msg) else: try: # PRE DELETE SIGNAL filebrowser_pre_delete.send(sender=request, path=path, filename=filename) # DELETE FOLDER default_storage.rmtree(os.path.join(abs_path, filename)) # POST DELETE SIGNAL filebrowser_post_delete.send(sender=request, path=path, filename=filename) # MESSAGE & REDIRECT msg = _("The folder %s was successfully deleted.") % (filename.lower()) messages.add_message(request, messages.SUCCESS, msg) except OSError: msg = _("An error occurred") messages.add_message(request, messages.ERROR, msg) qs = query_helper(query, "", "filename,filetype") return HttpResponseRedirect(reverse("fb_browse") + qs)
def remove_thumbnails(file_path): """ Cleans up previous Mezzanine thumbnail directories when a new file is written (upload or rename). """ from mezzanine.conf import settings dir_name, file_name = os.path.split(file_path) path = os.path.join(dir_name, settings.THUMBNAILS_DIR_NAME, file_name) try: default_storage.rmtree(path) except: pass
def remove_thumbnails(file_path): """ Cleans up previous Mezzanine thumbnail directories when a new file is written (upload or rename). """ from mezzanine.conf import settings dir_name, file_name = os.path.split(file_path) path = os.path.join(dir_name, settings.THUMBNAILS_DIR_NAME, file_name) try: default_storage.rmtree(path) except: pass
def remove_thumbnails(file_path): """ Cleans up previous Mezzanine thumbnail directories when a new file is written (upload or rename). """ from django.conf import settings thumb_dir = getattr(settings, "THUMBNAILS_DIR_NAME", ".thumbnails") dir_name, file_name = os.path.split(file_path) path = os.path.join(dir_name, thumb_dir, file_name) try: default_storage.rmtree(path) except: # noqa pass
def delete(self, **kwargs): if self.is_folder: default_storage.rmtree(self.name) else: super(FieldFileObject, self).delete(**kwargs)
def delete(self, **kwargs): if self.is_folder: default_storage.rmtree(self.name) else: super().delete(**kwargs)
def delete(self): if self.is_folder: default_storage.rmtree(self.path) # shutil.rmtree(self.path) else: default_storage.delete(self.path)
def delete(self): if self.is_folder: default_storage.rmtree(self.path) # shutil.rmtree(self.path) else: default_storage.delete(self.path)
def delete(self, **kwargs): if self.is_folder: default_storage.rmtree(self.path) else: super(FieldFileObject, self).delete(**kwargs)