Merge commit from fork

* Harden user setting cache updates

* Fix user update test isolation
This commit is contained in:
Calcium-Ion
2026-07-03 15:25:33 +08:00
committed by GitHub
parent bfddc5fea0
commit dfc0d6324b
6 changed files with 161 additions and 29 deletions
+6 -13
View File
@@ -732,8 +732,7 @@ func AdminClearUserBinding(c *gin.Context) {
func UpdateSelf(c *gin.Context) {
var requestData map[string]interface{}
err := json.NewDecoder(c.Request.Body).Decode(&requestData)
if err != nil {
if err := common.DecodeJson(c.Request.Body, &requestData); err != nil {
common.ApiErrorI18n(c, i18n.MsgInvalidParams)
return
}
@@ -755,9 +754,7 @@ func UpdateSelf(c *gin.Context) {
currentSetting.SidebarModules = sidebarModulesStr
}
// 保存更新后的设置
user.SetSetting(currentSetting)
if err := user.Update(false); err != nil {
if err := model.UpdateUserSetting(user.Id, currentSetting); err != nil {
common.ApiErrorI18n(c, i18n.MsgUpdateFailed)
return
}
@@ -783,9 +780,7 @@ func UpdateSelf(c *gin.Context) {
currentSetting.Language = langStr
}
// 保存更新后的设置
user.SetSetting(currentSetting)
if err := user.Update(false); err != nil {
if err := model.UpdateUserSetting(user.Id, currentSetting); err != nil {
common.ApiErrorI18n(c, i18n.MsgUpdateFailed)
return
}
@@ -796,13 +791,12 @@ func UpdateSelf(c *gin.Context) {
// 原有的用户信息更新逻辑
var user model.User
requestDataBytes, err := json.Marshal(requestData)
requestDataBytes, err := common.Marshal(requestData)
if err != nil {
common.ApiErrorI18n(c, i18n.MsgInvalidParams)
return
}
err = json.Unmarshal(requestDataBytes, &user)
if err != nil {
if err = common.Unmarshal(requestDataBytes, &user); err != nil {
common.ApiErrorI18n(c, i18n.MsgInvalidParams)
return
}
@@ -1434,8 +1428,7 @@ func UpdateUserSetting(c *gin.Context) {
}
// 更新用户设置
user.SetSetting(settings)
if err := user.Update(false); err != nil {
if err := model.UpdateUserSetting(user.Id, settings); err != nil {
common.ApiErrorI18n(c, i18n.MsgUpdateFailed)
return
}