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

commit commit

上级 ce4fb304
package com.example.afrishop_v3.controllers; package com.example.afrishop_v3.controllers;
import com.example.afrishop_v3.base.Result; 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.enums.ResultCodeEnum;
import com.example.afrishop_v3.models.ResetBody;
import com.example.afrishop_v3.models.TbCfUserInfo; import com.example.afrishop_v3.models.TbCfUserInfo;
import com.example.afrishop_v3.repository.UserRepository; import com.example.afrishop_v3.repository.UserRepository;
import com.example.afrishop_v3.security.services.AuthenticationUser; import com.example.afrishop_v3.security.services.AuthenticationUser;
...@@ -10,23 +10,24 @@ import com.example.afrishop_v3.util.SMSUtil; ...@@ -10,23 +10,24 @@ import com.example.afrishop_v3.util.SMSUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date; import java.util.Date;
import java.util.Optional; import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@RestController @RestController
@RequestMapping("user") @RequestMapping("user")
public class UserController extends Controller { public class UserController extends Controller {
private final UserRepository repository; private final UserRepository repository;
private final AuthenticationUser user; private final AuthenticationUser user;
private final PasswordEncoder encoder;
private static Logger logger = LoggerFactory.getLogger(UserController.class); 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.repository = repository;
this.user = user; this.user = user;
this.encoder = encoder;
} }
@PutMapping("bindPhoneOrEmail") @PutMapping("bindPhoneOrEmail")
...@@ -115,6 +116,31 @@ public class UserController extends Controller { ...@@ -115,6 +116,31 @@ public class UserController extends Controller {
return result; 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 @PutMapping
public Result updateUser(@RequestBody TbCfUserInfo info) { public Result updateUser(@RequestBody TbCfUserInfo info) {
TbCfUserInfo user = this.user.user(); TbCfUserInfo user = this.user.user();
......
...@@ -8,8 +8,8 @@ public enum UserTypeEnum { ...@@ -8,8 +8,8 @@ public enum UserTypeEnum {
FACEBOOK(2,"facebook"), FACEBOOK(2,"facebook"),
TWITTER(3,"推特"), TWITTER(3,"推特"),
PHONE(4,"手机"), PHONE(4,"手机"),
UN_KNOW(5,"未知") UN_KNOW(5,"未知"),
; GOOGLE(6,"Google");
//成员变量(常量) //成员变量(常量)
private final int code; 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论