提交 e433df7e authored 作者: Whispa's avatar Whispa

commit commit

上级 ce4fb304
package com.example.afrishop_v3.controllers;
import com.example.afrishop_v3.base.Result;
import com.example.afrishop_v3.bo.KeyConstant;
import com.example.afrishop_v3.enums.ResultCodeEnum;
import com.example.afrishop_v3.models.ResetBody;
import com.example.afrishop_v3.models.TbCfUserInfo;
import com.example.afrishop_v3.repository.UserRepository;
import com.example.afrishop_v3.security.services.AuthenticationUser;
......@@ -10,23 +10,24 @@ import com.example.afrishop_v3.util.SMSUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@RestController
@RequestMapping("user")
public class UserController extends Controller {
private final UserRepository repository;
private final AuthenticationUser user;
private final PasswordEncoder encoder;
private static Logger logger = LoggerFactory.getLogger(UserController.class);
public UserController(UserRepository repository, AuthenticationUser user) {
public UserController(UserRepository repository, AuthenticationUser user, PasswordEncoder encoder) {
this.repository = repository;
this.user = user;
this.encoder = encoder;
}
@PutMapping("bindPhoneOrEmail")
......@@ -115,6 +116,31 @@ public class UserController extends Controller {
return result;
}
@PutMapping
public Result updatePassword(@RequestBody ResetBody body){
if( body == null || body.getNewPassword() == null || body.getOldPassword() == null || body.getOldPassword().isEmpty() || body.getNewPassword().isEmpty()){
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Empty body");
}
TbCfUserInfo user = this.user.user();
boolean matches = encoder.matches(body.getOldPassword(), user.getPassword());
if( !matches ){
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Old password does not match");
}
user.setPassword(encoder.encode(body.getNewPassword()));
repository.save(user);
return new Result<>(user);
}
@PutMapping
public Result updateUser(@RequestBody TbCfUserInfo info) {
TbCfUserInfo user = this.user.user();
......
......@@ -8,8 +8,8 @@ public enum UserTypeEnum {
FACEBOOK(2,"facebook"),
TWITTER(3,"推特"),
PHONE(4,"手机"),
UN_KNOW(5,"未知")
;
UN_KNOW(5,"未知"),
GOOGLE(6,"Google");
//成员变量(常量)
private final int code;
......
package com.example.afrishop_v3.models;
public class ResetBody {
private String oldPassword;
private String newPassword;
public String getNewPassword() {
return newPassword;
}
public String getOldPassword() {
return oldPassword;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论