webui: Add profile reset defaults

- Add a reset action for profile values in the admin page
- Restore reset values to the auto-created user defaults instead of the bootstrap user
- Remind users to re-login after saving or resetting profile changes

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-06-04 19:31:48 +08:00
parent 2e2b6259b5
commit 1b0116539f
4 changed files with 116 additions and 4 deletions
+2 -2
View File
@@ -136,8 +136,8 @@ func addUser(dbSession *xorm.Session, phone, password string, isDefault bool) (g
awardID := 1 // 音乃木坂学生
backgroundID := 1 // 初始背景
unitID := 31 // 初始高坂穂乃果
userName := "音乃木坂学生"
userDesc := "你好。"
userName := usermodel.DefaultAutoUserName
userDesc := usermodel.DefaultAutoUserDesc
// 是否初始化
if isDefault {
// 初始化默认用户
+48
View File
@@ -135,7 +135,55 @@ func updateProfile(ctx *gin.Context) {
})
}
func resetProfile(ctx *gin.Context) {
pref := usermodel.UserPref{}
exists, err := db.UserEng.Table(new(usermodel.UserPref)).
Where("user_id = ?", ctx.GetInt("userid")).Get(&pref)
if err != nil || !exists {
ctx.JSON(http.StatusOK, webuischema.Msg{
Code: 1,
Message: "用户资料读取失败!",
})
return
}
pref.ResetProfileDefaults()
pref.UpdateTime = time.Now().Unix()
_, err = db.UserEng.Table(new(usermodel.UserPref)).
Where("user_id = ?", ctx.GetInt("userid")).
Cols(
"user_name",
"user_level",
"user_desc",
"invite_code",
"user_exp",
"next_exp",
"game_coin",
"sns_coin",
"energy_max",
"over_max_energy",
"profile_version",
"update_time",
).
Update(&pref)
if err != nil {
ctx.JSON(http.StatusOK, webuischema.Msg{
Code: 1,
Message: "重置失败!",
})
return
}
ctx.JSON(http.StatusOK, webuischema.Msg{
Code: 0,
Message: "已恢复默认值!",
Redirect: "/admin/profile",
})
}
func init() {
router.AddHandler("admin", "GET", "/profile", middleware.WebAuth, profilePage)
router.AddHandler("admin", "POST", "/profile", middleware.WebAuth, updateProfile)
router.AddHandler("admin", "POST", "/profile/reset", middleware.WebAuth, resetProfile)
}