MCPcopy
hub / github.com/HelloZeroNet/ZeroNet / actionFileDelete

Method actionFileDelete

src/Ui/UiWebsocket.py:603–633  ·  view source on GitHub ↗
(self, to, inner_path)

Source from the content-addressed store, hash-verified

601 ws.event("siteChanged", self.site, {"event": ["file_done", inner_path]})
602
603 def actionFileDelete(self, to, inner_path):
604 if not self.hasFilePermission(inner_path):
605 self.log.error("File delete error: you don't own this site & you are not approved by the owner.")
606 return self.response(to, {"error": "Forbidden, you can only modify your own files"})
607
608 need_delete = True
609 file_info = self.site.content_manager.getFileInfo(inner_path)
610 if file_info and file_info.get("optional"):
611 # Non-existing optional files won't be removed from content.json, so we have to do it manually
612 self.log.debug("Deleting optional file: %s" % inner_path)
613 relative_path = file_info["relative_path"]
614 content_json = self.site.storage.loadJson(file_info["content_inner_path"])
615 if relative_path in content_json.get("files_optional", {}):
616 del content_json["files_optional"][relative_path]
617 self.site.storage.writeJson(file_info["content_inner_path"], content_json)
618 self.site.content_manager.loadContent(file_info["content_inner_path"], add_bad_files=False, force=True)
619 need_delete = self.site.storage.isFile(inner_path) # File sill exists after removing from content.json (owned site)
620
621 if need_delete:
622 try:
623 self.site.storage.delete(inner_path)
624 except Exception as err:
625 self.log.error("File delete error: %s" % err)
626 return self.response(to, {"error": "Delete error: %s" % err})
627
628 self.response(to, "ok")
629
630 # Send sitechanged to other local users
631 for ws in self.site.websockets:
632 if ws != self:
633 ws.event("siteChanged", self.site, {"event": ["file_deleted", inner_path]})
634
635 # Find data in json files
636 def actionFileQuery(self, to, dir_inner_path, query=None):

Callers

nothing calls this directly

Calls 11

hasFilePermissionMethod · 0.95
responseMethod · 0.95
errorMethod · 0.80
loadJsonMethod · 0.80
writeJsonMethod · 0.80
loadContentMethod · 0.80
eventMethod · 0.80
getFileInfoMethod · 0.45
getMethod · 0.45
isFileMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected