From 75fe2b9d001286be38e53eb1e408cc5b364840dd Mon Sep 17 00:00:00 2001 From: haesuo566 <102643523+haesuo566@users.noreply.github.com> Date: Wed, 6 Nov 2024 12:33:44 +0900 Subject: [PATCH] Fixed part where permissions could not be changed due to umask settings --- context.go | 7 ++++++- context_test.go | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/context.go b/context.go index 3c5bc7f2d7..0ccadca554 100644 --- a/context.go +++ b/context.go @@ -689,7 +689,12 @@ func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string, perm perm = append(perm, 0o750) } - if err = os.MkdirAll(filepath.Dir(dst), perm[0]); err != nil { + dirPath := filepath.Dir(dst) + if err = os.MkdirAll(dirPath, perm[0]); err != nil { + return err + } + + if err = os.Chmod(dirPath, perm[0]); err != nil { return err } diff --git a/context_test.go b/context_test.go index 3d3b575714..c62ba2323e 100644 --- a/context_test.go +++ b/context_test.go @@ -171,7 +171,7 @@ func TestSaveUploadedFileWithPermission(t *testing.T) { require.NoError(t, err) assert.Equal(t, "permission_test", f.Filename) - var mode fs.FileMode = 0o777 + var mode fs.FileMode = 0o755 require.NoError(t, c.SaveUploadedFile(f, "permission_test", mode)) info, err := os.Stat(filepath.Dir("permission_test")) @@ -195,7 +195,7 @@ func TestSaveUploadedFileWithPermissionFailed(t *testing.T) { require.NoError(t, err) assert.Equal(t, "permission_test", f.Filename) - var mode fs.FileMode = 0o666 + var mode fs.FileMode = 0o644 require.Error(t, c.SaveUploadedFile(f, "test/permission_test", mode)) }