mirror of
https://github.com/filebrowser/filebrowser.git
synced 2026-07-17 16:36:49 +00:00
fix: restore ScopedFs RealPath (#5986)
This commit is contained in:
parent
dfe6e5b333
commit
403d2bbd33
2 changed files with 21 additions and 0 deletions
|
|
@ -212,3 +212,17 @@ func TestReadListingSkipsInaccessibleChildren(t *testing.T) {
|
|||
t.Fatalf("expected one listed directory, got %d", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFileInfoRealPathUsesScopedFsRealPath(t *testing.T) {
|
||||
root := t.TempDir()
|
||||
file := &FileInfo{
|
||||
Fs: NewScopedFs(afero.NewOsFs(), root),
|
||||
Path: "/root/downloads",
|
||||
}
|
||||
|
||||
got := file.RealPath()
|
||||
want := filepath.Join(root, "root", "downloads")
|
||||
if got != want {
|
||||
t.Fatalf("got %q, want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,13 @@ func NewScopedFs(source afero.Fs, path string) *ScopedFs {
|
|||
// Base returns the underlying *afero.BasePathFs.
|
||||
func (s *ScopedFs) Base() *afero.BasePathFs { return s.base }
|
||||
|
||||
// RealPath resolves a scoped path to the real on-disk path by delegating to
|
||||
// the underlying BasePathFs. This is needed by callers that need the actual
|
||||
// filesystem path (e.g. disk.UsageWithContext).
|
||||
func (s *ScopedFs) RealPath(name string) (string, error) {
|
||||
return s.base.RealPath(name)
|
||||
}
|
||||
|
||||
// guard returns an error if name's on-disk target resolves outside the scope.
|
||||
func (s *ScopedFs) guard(name string) error {
|
||||
ok, err := s.within(name)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue