fix(user): omit internal settings from list responses (#5917)

pull/5921/head
boojack 4 weeks ago committed by GitHub
parent 0bc56694b0
commit 1df3fe7955
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,58 @@
package test
import (
"context"
"testing"
"github.com/stretchr/testify/require"
apiv1 "github.com/usememos/memos/proto/gen/api/v1"
storepb "github.com/usememos/memos/proto/gen/store"
apiv1server "github.com/usememos/memos/server/router/api/v1"
)
func TestListUserSettingsOmitsInternalStoreSettings(t *testing.T) {
ctx := context.Background()
ts := NewTestService(t)
defer ts.Cleanup()
user, err := ts.CreateRegularUser(ctx, "locale-user")
require.NoError(t, err)
_, err = ts.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
UserId: user.ID,
Key: storepb.UserSetting_REFRESH_TOKENS,
Value: &storepb.UserSetting_RefreshTokens{
RefreshTokens: &storepb.RefreshTokensUserSetting{},
},
})
require.NoError(t, err)
_, err = ts.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
UserId: user.ID,
Key: storepb.UserSetting_SHORTCUTS,
Value: &storepb.UserSetting_Shortcuts{
Shortcuts: &storepb.ShortcutsUserSetting{},
},
})
require.NoError(t, err)
_, err = ts.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
UserId: user.ID,
Key: storepb.UserSetting_GENERAL,
Value: &storepb.UserSetting_General{
General: &storepb.GeneralUserSetting{
Locale: "ja",
},
},
})
require.NoError(t, err)
resp, err := ts.Service.ListUserSettings(ts.CreateUserContext(ctx, user.ID), &apiv1.ListUserSettingsRequest{
Parent: apiv1server.BuildUserName(user.Username),
})
require.NoError(t, err)
require.Len(t, resp.Settings, 1)
require.Equal(t, "users/locale-user/settings/GENERAL", resp.Settings[0].Name)
require.Equal(t, "ja", resp.Settings[0].GetGeneralSetting().Locale)
}

@ -1294,6 +1294,10 @@ func convertUserSettingFromStore(storeSetting *storepb.UserSetting, user *store.
}
switch key {
case storepb.UserSetting_GENERAL:
setting.Value = &v1pb.UserSetting_GeneralSetting_{
GeneralSetting: getDefaultUserGeneralSetting(),
}
case storepb.UserSetting_WEBHOOKS:
setting.Value = &v1pb.UserSetting_WebhooksSetting_{
WebhooksSetting: &v1pb.UserSetting_WebhooksSetting{
@ -1301,10 +1305,7 @@ func convertUserSettingFromStore(storeSetting *storepb.UserSetting, user *store.
},
}
default:
// Default to general setting
setting.Value = &v1pb.UserSetting_GeneralSetting_{
GeneralSetting: getDefaultUserGeneralSetting(),
}
return nil
}
return setting
}
@ -1349,10 +1350,7 @@ func convertUserSettingFromStore(storeSetting *storepb.UserSetting, user *store.
},
}
default:
// Default to general setting if unknown key
setting.Value = &v1pb.UserSetting_GeneralSetting_{
GeneralSetting: getDefaultUserGeneralSetting(),
}
return nil
}
return setting

Loading…
Cancel
Save