mirror of
https://github.com/9001/copyparty.git
synced 2025-08-18 17:32:20 -06:00
open write-only folders from tree
This commit is contained in:
parent
403261a293
commit
f94aa46a11
|
@ -141,7 +141,12 @@ class VFS(object):
|
||||||
real.sort()
|
real.sort()
|
||||||
if not rem:
|
if not rem:
|
||||||
for name, vn2 in sorted(self.nodes.items()):
|
for name, vn2 in sorted(self.nodes.items()):
|
||||||
if uname in vn2.uread or "*" in vn2.uread:
|
if (
|
||||||
|
uname in vn2.uread
|
||||||
|
or "*" in vn2.uread
|
||||||
|
or uname in vn2.uwrite
|
||||||
|
or "*" in vn2.uwrite
|
||||||
|
):
|
||||||
virt_vis[name] = vn2
|
virt_vis[name] = vn2
|
||||||
|
|
||||||
# no vfs nodes in the list of real inodes
|
# no vfs nodes in the list of real inodes
|
||||||
|
|
|
@ -1367,6 +1367,14 @@ class HttpCli(object):
|
||||||
with open(fsenc(fn), "rb") as f:
|
with open(fsenc(fn), "rb") as f:
|
||||||
logues[n] = f.read().decode("utf-8")
|
logues[n] = f.read().decode("utf-8")
|
||||||
|
|
||||||
|
ls_ret = {
|
||||||
|
"dirs": [],
|
||||||
|
"files": [],
|
||||||
|
"taglist": [],
|
||||||
|
"srvinf": srv_info,
|
||||||
|
"perms": perms,
|
||||||
|
"logues": logues,
|
||||||
|
}
|
||||||
j2a = {
|
j2a = {
|
||||||
"vdir": quotep(self.vpath),
|
"vdir": quotep(self.vpath),
|
||||||
"vpnodes": vpnodes,
|
"vpnodes": vpnodes,
|
||||||
|
@ -1386,7 +1394,9 @@ class HttpCli(object):
|
||||||
}
|
}
|
||||||
if not self.readable:
|
if not self.readable:
|
||||||
if is_ls:
|
if is_ls:
|
||||||
raise Pebkac(403)
|
ret = json.dumps(ls_ret)
|
||||||
|
self.reply(ret.encode("utf-8", "replace"), mime="application/json")
|
||||||
|
return True
|
||||||
|
|
||||||
if not os.path.isdir(fsenc(abspath)):
|
if not os.path.isdir(fsenc(abspath)):
|
||||||
raise Pebkac(404)
|
raise Pebkac(404)
|
||||||
|
@ -1535,15 +1545,10 @@ class HttpCli(object):
|
||||||
|
|
||||||
if is_ls:
|
if is_ls:
|
||||||
[x.pop(k) for k in ["name", "dt"] for y in [dirs, files] for x in y]
|
[x.pop(k) for k in ["name", "dt"] for y in [dirs, files] for x in y]
|
||||||
ret = {
|
ls_ret["dirs"] = dirs
|
||||||
"dirs": dirs,
|
ls_ret["files"] = files
|
||||||
"files": files,
|
ls_ret["taglist"] = taglist
|
||||||
"srvinf": srv_info,
|
ret = json.dumps(ls_ret)
|
||||||
"perms": perms,
|
|
||||||
"logues": logues,
|
|
||||||
"taglist": taglist,
|
|
||||||
}
|
|
||||||
ret = json.dumps(ret)
|
|
||||||
self.reply(ret.encode("utf-8", "replace"), mime="application/json")
|
self.reply(ret.encode("utf-8", "replace"), mime="application/json")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue