fix: repair user password reset and recreate flow

This commit is contained in:
ShukeBta
2026-05-30 03:33:36 +08:00
parent 99ecae0c44
commit ce9abf6306
12 changed files with 279 additions and 30 deletions
+19
View File
@@ -63,6 +63,10 @@ type adminUpdateUserReq struct {
Username string `json:"username" binding:"required"`
}
type adminResetPasswordReq struct {
Password string `json:"password" binding:"required,min=6"`
}
func updateUserHandler(svc *service.Container) gin.HandlerFunc {
return func(c *gin.Context) {
var req adminUpdateUserReq
@@ -132,6 +136,21 @@ func deleteUserHandler(svc *service.Container) gin.HandlerFunc {
}
}
func resetUserPasswordHandler(svc *service.Container) gin.HandlerFunc {
return func(c *gin.Context) {
var req adminResetPasswordReq
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if err := svc.Auth.ResetPassword(c.Request.Context(), c.Param("id"), req.Password); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"ok": true})
}
}
func annotateProtectedUsers(ctx context.Context, svc *service.Container, users []model.User) error {
firstAdmin, err := svc.Repo.User.FirstAdmin(ctx)
if err != nil || firstAdmin == nil {