mirror of https://gitee.com/answerdev/answer.git
Merge remote-tracking branch 'origin/feat/1.2.0/img' into test
This commit is contained in:
commit
be821faf08
|
@ -421,6 +421,7 @@ func (uc *UserController) UserUpdateInfo(ctx *gin.Context) {
|
|||
return
|
||||
}
|
||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||
req.IsAdmin = middleware.GetUserIsAdminModerator(ctx)
|
||||
errFields, err := uc.userService.UpdateInfo(ctx, req)
|
||||
for _, field := range errFields {
|
||||
field.ErrorMsg = translator.Tr(handler.GetLang(ctx), field.ErrorMsg)
|
||||
|
|
|
@ -208,22 +208,15 @@ func (u *UserModifyPasswordReq) Check() (errFields []*validator.FormErrorField,
|
|||
}
|
||||
|
||||
type UpdateInfoRequest struct {
|
||||
// display_name
|
||||
DisplayName string `validate:"omitempty,gt=0,lte=30" json:"display_name"`
|
||||
// username
|
||||
Username string `validate:"omitempty,gt=3,lte=30" json:"username"`
|
||||
// avatar
|
||||
Avatar AvatarInfo `json:"avatar"`
|
||||
// bio
|
||||
Bio string `validate:"omitempty,gt=0,lte=4096" json:"bio"`
|
||||
// bio
|
||||
BioHTML string `json:"-"`
|
||||
// website
|
||||
Website string `validate:"omitempty,gt=0,lte=500" json:"website"`
|
||||
// location
|
||||
Location string `validate:"omitempty,gt=0,lte=100" json:"location"`
|
||||
// user id
|
||||
UserID string `json:"-"`
|
||||
DisplayName string `validate:"omitempty,gt=0,lte=30" json:"display_name"`
|
||||
Username string `validate:"omitempty,gt=3,lte=30" json:"username"`
|
||||
Avatar AvatarInfo `json:"avatar"`
|
||||
Bio string `validate:"omitempty,gt=0,lte=4096" json:"bio"`
|
||||
BioHTML string `json:"-"`
|
||||
Website string `validate:"omitempty,gt=0,lte=500" json:"website"`
|
||||
Location string `validate:"omitempty,gt=0,lte=100" json:"location"`
|
||||
UserID string `json:"-"`
|
||||
IsAdmin bool `json:"-"`
|
||||
}
|
||||
|
||||
type AvatarInfo struct {
|
||||
|
|
|
@ -274,18 +274,22 @@ func (us *UserService) UpdateInfo(ctx context.Context, req *schema.UpdateInfoReq
|
|||
|
||||
if siteUsers.AllowUpdateUsername && len(req.Username) > 0 {
|
||||
if checker.IsInvalidUsername(req.Username) {
|
||||
errFields = append(errFields, &validator.FormErrorField{
|
||||
return append(errFields, &validator.FormErrorField{
|
||||
ErrorField: "username",
|
||||
ErrorMsg: reason.UsernameInvalid,
|
||||
})
|
||||
return errFields, errors.BadRequest(reason.UsernameInvalid)
|
||||
}), errors.BadRequest(reason.UsernameInvalid)
|
||||
}
|
||||
if checker.IsReservedUsername(req.Username) {
|
||||
errFields = append(errFields, &validator.FormErrorField{
|
||||
// admin can use reserved username
|
||||
if !req.IsAdmin && checker.IsReservedUsername(req.Username) {
|
||||
return append(errFields, &validator.FormErrorField{
|
||||
ErrorField: "username",
|
||||
ErrorMsg: reason.UsernameInvalid,
|
||||
})
|
||||
return errFields, errors.BadRequest(reason.UsernameInvalid)
|
||||
}), errors.BadRequest(reason.UsernameInvalid)
|
||||
} else if req.IsAdmin && checker.IsUsersIgnorePath(req.Username) {
|
||||
return append(errFields, &validator.FormErrorField{
|
||||
ErrorField: "username",
|
||||
ErrorMsg: reason.UsernameInvalid,
|
||||
}), errors.BadRequest(reason.UsernameInvalid)
|
||||
}
|
||||
|
||||
userInfo, exist, err := us.userRepo.GetByUsername(ctx, req.Username)
|
||||
|
@ -293,11 +297,10 @@ func (us *UserService) UpdateInfo(ctx context.Context, req *schema.UpdateInfoReq
|
|||
return nil, err
|
||||
}
|
||||
if exist && userInfo.ID != req.UserID {
|
||||
errFields = append(errFields, &validator.FormErrorField{
|
||||
return append(errFields, &validator.FormErrorField{
|
||||
ErrorField: "username",
|
||||
ErrorMsg: reason.UsernameDuplicate,
|
||||
})
|
||||
return errFields, errors.BadRequest(reason.UsernameDuplicate)
|
||||
}), errors.BadRequest(reason.UsernameDuplicate)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue