diff --git a/.golangci.yml b/.golangci.yml index ca76d6f1..33ad18de 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -2,7 +2,7 @@ linters-settings: dupl: threshold: 100 exhaustive: - default-signifies-exhaustive: false + default-signifies-exhaustive: true funlen: lines: 100 statements: 50 diff --git a/http/data.go b/http/data.go index a697f514..c8936a1a 100644 --- a/http/data.go +++ b/http/data.go @@ -1,13 +1,14 @@ package http import ( + "errors" "log" "net/http" "strconv" "github.com/tomasen/realip" - "github.com/filebrowser/filebrowser/v2/errors" + fbErrors "github.com/filebrowser/filebrowser/v2/errors" "github.com/filebrowser/filebrowser/v2/rules" "github.com/filebrowser/filebrowser/v2/runner" "github.com/filebrowser/filebrowser/v2/settings" @@ -74,7 +75,8 @@ func handle(fn handleFunc, prefix string, store *storage.Storage, server *settin if status != 0 { txt := strconv.Itoa(status) + " " + http.StatusText(status) - if httpErr, ok := err.(*errors.HTTPError); ok { + var httpErr *fbErrors.HTTPError + if errors.As(err, &httpErr) { txt += " [" + httpErr.Type + "]" } http.Error(w, txt, status) diff --git a/http/resource.go b/http/resource.go index ba1fd03e..f9e0734d 100644 --- a/http/resource.go +++ b/http/resource.go @@ -670,6 +670,8 @@ func chmodActionHandler(r *http.Request, d *data) error { return fbErrors.ErrInvalidRequestParams } + permMode := uint32(mode) + info, err := d.user.Fs.Stat(target) if err != nil { return err @@ -688,7 +690,7 @@ func chmodActionHandler(r *http.Request, d *data) error { return !i.IsDir() } default: - recFilter = func(i os.FileInfo) bool { + recFilter = func(_ os.FileInfo) bool { return true } } @@ -696,12 +698,12 @@ func chmodActionHandler(r *http.Request, d *data) error { return afero.Walk(d.user.Fs, target, func(name string, info os.FileInfo, err error) error { if err == nil { if recFilter(info) { - err = d.user.Fs.Chmod(name, os.FileMode(mode)) + err = d.user.Fs.Chmod(name, os.FileMode(permMode)) } } return err }) } - return d.user.Fs.Chmod(target, os.FileMode(mode)) + return d.user.Fs.Chmod(target, os.FileMode(permMode)) }