MCPcopy
hub / github.com/apache/answer / UserModifyPassWord

Method UserModifyPassWord

internal/controller/user_controller.go:388–437  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

386// @Success 200 {object} handler.RespBody
387// @Router /answer/api/v1/user/password [put]
388func (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

Callers

nothing calls this directly

Calls 12

BindAndCheckFunction · 0.92
ExtractTokenFunction · 0.92
GetUserIsAdminModeratorFunction · 0.92
TrFunction · 0.92
GetLangByCtxFunction · 0.92
HandleResponseFunction · 0.92
ActionRecordAddMethod · 0.80
UserModifyPasswordMethod · 0.80
ActionRecordDelMethod · 0.80

Tested by

no test coverage detected