Skip to content

Commit 33bff9a

Browse files
authored
Create root directory before saving avatar (#4515)
Fix avatar creation when no thumbnails have been created before. The avatar is persisted in the same directory than thumbnails for Afero VFS, and this directory needs to be created.
2 parents 4db14ec + 662553c commit 33bff9a

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

model/vfs/vfsafero/avatar.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ func (u *avatarUpload) Close() error {
3535
}
3636

3737
func (a *avatarFS) CreateAvatar(contentType string) (io.WriteCloser, error) {
38+
if err := a.fs.MkdirAll("/", 0755); err != nil {
39+
return nil, err
40+
}
3841
f, err := afero.TempFile(a.fs, "/", AvatarFilename)
3942
if err != nil {
4043
return nil, err

web/settings/settings_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,6 +1082,21 @@ func TestSettings(t *testing.T) {
10821082
Expect().Status(302).
10831083
Header("location").IsEqual(testInstance.DefaultRedirection().String())
10841084
})
1085+
1086+
t.Run("PutAvatar", func(t *testing.T) {
1087+
e := testutils.CreateTestClient(t, ts.URL)
1088+
sessCookie := session.CookieName(testInstance)
1089+
1090+
// Create a sample avatar image
1091+
avatarContent := "fake image content"
1092+
1093+
e.PUT("/settings/avatar").
1094+
WithCookie(sessCookie, "connected").
1095+
WithHeader("Authorization", "Bearer "+token).
1096+
WithHeader("Content-Type", "image/png").
1097+
WithBytes([]byte(avatarContent)).
1098+
Expect().Status(204)
1099+
})
10851100
}
10861101

10871102
func TestRegisterPassphraseForFlagshipApp(t *testing.T) {

0 commit comments

Comments
 (0)