UserModifyPassWord godoc @Summary UserModifyPassWord @Description UserModifyPassWord @Tags User @Accept json @Produce json @Security ApiKeyAuth @Param data body schema.UserModifyPasswordReq true "UserModifyPasswordReq" @Success 200 {object} handler.RespBody @Router /answer/api/v1/user/password [put
(ctx *gin.Context)
| 386 | // @Success 200 {object} handler.RespBody |
| 387 | // @Router /answer/api/v1/user/password [put] |
| 388 | func (uc *UserController) UserModifyPassWord(ctx *gin.Context) { |
| 389 | req := &schema.UserModifyPasswordReq{} |
| 390 | if handler.BindAndCheck(ctx, req) { |
| 391 | return |
| 392 | } |
| 393 | req.UserID = middleware.GetLoginUserIDFromContext(ctx) |
| 394 | req.AccessToken = middleware.ExtractToken(ctx) |
| 395 | isAdmin := middleware.GetUserIsAdminModerator(ctx) |
| 396 | if !isAdmin { |
| 397 | captchaPass := uc.actionService.ActionRecordVerifyCaptcha(ctx, entity.CaptchaActionEditUserinfo, req.UserID, |
| 398 | req.CaptchaID, req.CaptchaCode) |
| 399 | if !captchaPass { |
| 400 | errFields := append([]*validator.FormErrorField{}, &validator.FormErrorField{ |
| 401 | ErrorField: "captcha_code", |
| 402 | ErrorMsg: translator.Tr(handler.GetLangByCtx(ctx), reason.CaptchaVerificationFailed), |
| 403 | }) |
| 404 | handler.HandleResponse(ctx, errors.BadRequest(reason.CaptchaVerificationFailed), errFields) |
| 405 | return |
| 406 | } |
| 407 | uc.actionService.ActionRecordAdd(ctx, entity.CaptchaActionEditUserinfo, req.UserID) |
| 408 | } |
| 409 | |
| 410 | oldPassVerification, err := uc.userService.UserModifyPassWordVerification(ctx, req) |
| 411 | if err != nil { |
| 412 | handler.HandleResponse(ctx, err, nil) |
| 413 | return |
| 414 | } |
| 415 | if !oldPassVerification { |
| 416 | errFields := append([]*validator.FormErrorField{}, &validator.FormErrorField{ |
| 417 | ErrorField: "old_pass", |
| 418 | ErrorMsg: translator.Tr(handler.GetLangByCtx(ctx), reason.OldPasswordVerificationFailed), |
| 419 | }) |
| 420 | handler.HandleResponse(ctx, errors.BadRequest(reason.OldPasswordVerificationFailed), errFields) |
| 421 | return |
| 422 | } |
| 423 | |
| 424 | if req.OldPass == req.Pass { |
| 425 | errFields := append([]*validator.FormErrorField{}, &validator.FormErrorField{ |
| 426 | ErrorField: "pass", |
| 427 | ErrorMsg: translator.Tr(handler.GetLangByCtx(ctx), reason.NewPasswordSameAsPreviousSetting), |
| 428 | }) |
| 429 | handler.HandleResponse(ctx, errors.BadRequest(reason.NewPasswordSameAsPreviousSetting), errFields) |
| 430 | return |
| 431 | } |
| 432 | err = uc.userService.UserModifyPassword(ctx, req) |
| 433 | if err == nil { |
| 434 | uc.actionService.ActionRecordDel(ctx, entity.CaptchaActionEditUserinfo, req.UserID) |
| 435 | } |
| 436 | handler.HandleResponse(ctx, err, nil) |
| 437 | } |
| 438 | |
| 439 | // UserUpdateInfo update user info |
| 440 | // @Summary UserUpdateInfo update user info |
nothing calls this directly
no test coverage detected