fix: handle nil setting in user retrieval from database

This commit is contained in:
CaIon
2026-02-24 23:46:17 +08:00
parent aa9e0fe7a8
commit 0da0d80647

View File

@@ -1,6 +1,7 @@
package model
import (
"database/sql"
"encoding/json"
"errors"
"fmt"
@@ -853,10 +854,17 @@ func GetUserSetting(id int, fromDB bool) (settingMap dto.UserSetting, err error)
// Don't return error - fall through to DB
}
fromDB = true
err = DB.Model(&User{}).Where("id = ?", id).Select("setting").Find(&setting).Error
// can be nil setting
var safeSetting sql.NullString
err = DB.Model(&User{}).Where("id = ?", id).Select("setting").Find(&safeSetting).Error
if err != nil {
return settingMap, err
}
if safeSetting.Valid {
setting = safeSetting.String
} else {
setting = ""
}
userBase := &UserBase{
Setting: setting,
}