mirror of
https://github.com/9001/copyparty.git
synced 2026-04-12 23:32:32 -06:00
sftp: .hidden
This commit is contained in:
parent
beb634dc54
commit
23545116af
|
|
@ -30,6 +30,10 @@ from .util import (
|
||||||
Daemon,
|
Daemon,
|
||||||
ODict,
|
ODict,
|
||||||
Pebkac,
|
Pebkac,
|
||||||
|
exclude_dotfiles,
|
||||||
|
exclude_dotfiles_ls,
|
||||||
|
exclude_dothidden,
|
||||||
|
exclude_dothidden_ls,
|
||||||
ipnorm,
|
ipnorm,
|
||||||
min_ex,
|
min_ex,
|
||||||
read_utf8,
|
read_utf8,
|
||||||
|
|
@ -401,21 +405,27 @@ class SFTP_Srv(paramiko.SFTPServerInterface):
|
||||||
self.log("ls(%s): vfs-vols; |%d|" % (path, len(ret)))
|
self.log("ls(%s): vfs-vols; |%d|" % (path, len(ret)))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
_, vfs_ls, vfs_virt = vn.ls(
|
fsroot, vfs_ls, vfs_virt = vn.ls(
|
||||||
rem,
|
rem,
|
||||||
self.uname,
|
self.uname,
|
||||||
not self.args.no_scandir,
|
not self.args.no_scandir,
|
||||||
[[True, False], [False, True]],
|
[[True, False], [False, True]],
|
||||||
throw=True,
|
throw=True,
|
||||||
)
|
)
|
||||||
|
vnames = list(vfs_virt)
|
||||||
|
if self.uname not in vn.axs.udot:
|
||||||
|
if "dothidden" in vn.flags and ".hidden" in [x[0] for x in vfs_ls]:
|
||||||
|
vfs_ls = exclude_dothidden_ls(vfs_ls, fsroot)
|
||||||
|
vnames = exclude_dothidden(vnames, fsroot)
|
||||||
|
else:
|
||||||
|
vfs_ls = exclude_dotfiles_ls(vfs_ls)
|
||||||
|
vnames = exclude_dotfiles(vnames)
|
||||||
ret = [SATTR.from_stat(x[1], filename=x[0]) for x in vfs_ls]
|
ret = [SATTR.from_stat(x[1], filename=x[0]) for x in vfs_ls]
|
||||||
for zs, vn2 in vfs_virt.items():
|
for zs, vn2 in vfs_virt.items():
|
||||||
if not vn2.realpath:
|
if not vn2.realpath or zs not in vnames:
|
||||||
continue
|
continue
|
||||||
st = bos.stat(vn2.realpath)
|
st = bos.stat(vn2.realpath)
|
||||||
ret.append(SATTR.from_stat(st, filename=zs))
|
ret.append(SATTR.from_stat(st, filename=zs))
|
||||||
if self.uname not in vn.axs.udot:
|
|
||||||
ret = [x for x in ret if not x.filename.split("/")[-1].startswith(".")]
|
|
||||||
ret.sort(key=lambda x: x.filename)
|
ret.sort(key=lambda x: x.filename)
|
||||||
self.log("ls(%s): |%d|" % (path, len(ret)))
|
self.log("ls(%s): |%d|" % (path, len(ret)))
|
||||||
return ret
|
return ret
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue