Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update: register account #11

Merged
merged 1 commit into from
May 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions src/main/java/com/example/demo/controller/AuthController.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.example.demo.message.GlobalMessage;
import com.example.demo.model.DTO.login.LoginDTO;
import com.example.demo.model.DTO.refreshToken.RefreshTokenDTO;
import com.example.demo.model.DTO.register.RegisterDTO;
import com.example.demo.response.ApiResponse;
import com.example.demo.service.interfaces.AuthService;
import com.example.demo.util.JwtUtil;
Expand All @@ -21,11 +22,11 @@
public class AuthController {
private final AuthService authService;

// @PostMapping("/register")
// public ResponseEntity<Object> register(@RequestBody RegisterDTO registerDTO) {
// authService.register(registerDTO);
// return ApiResponse.responseBuilder(HttpStatus.CREATED, GlobalMessage.SUCCESS, null);
// }
@PostMapping("/register")
public ResponseEntity<Object> register(@RequestBody RegisterDTO registerDTO) {
authService.register(registerDTO);
return ApiResponse.responseBuilder(HttpStatus.CREATED, GlobalMessage.SUCCESS, null);
}

@PostMapping("/login")
public ResponseEntity<Object> login(@RequestBody LoginDTO loginDTO) {
Expand All @@ -48,7 +49,7 @@ public ResponseEntity<Object> refreshToken(@RequestBody RefreshTokenDTO refreshT

// [POST] /auth/resetPassword?email=...
@PostMapping("/resetPassword")
public ResponseEntity<Object> refreshToken(@RequestParam("email") String email) {
public ResponseEntity<Object> resetPassword(@RequestParam("email") String email) {
authService.resetPassword(email);
return ApiResponse.responseBuilder(HttpStatus.OK, GlobalMessage.SUCCESS, null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
@AllArgsConstructor
public class RegisterDTO {
private String email;
private String username;
private String fullName;
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public void register(RegisterDTO registerDTO) {

UserDto userDto = UserDto.builder()
.email(registerDTO.getEmail())
.username(registerDTO.getUsername())
.fullName(registerDTO.getFullName())
.password(AuthUtils.generatePassword())
.build();
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,38 +12,39 @@
@Service
@AllArgsConstructor
public class MailServiceImpl {
private static final String COMPANY_NAME = "MiuKit Company: ";
private static final String FROM = "noreply@miukit.com";

private final JavaMailSender javaMailSender;

public void sendMailRegisterSuccess(UserDto userDto) throws MessagingException {
String from = "noreply@spring.com";
String to = userDto.getEmail();

MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);

helper.setSubject("Account registration successful!");
helper.setFrom(from);
helper.setSubject(COMPANY_NAME + "Account registration successful!");
helper.setFrom(FROM);
helper.setTo(to);

boolean html = true;
helper.setText("<b>Hi " + userDto.getUsername() + "</b>," +
"<br><i>Your username: <b>" + userDto.getUsername() + "</b></i>" +
helper.setText("<b>Hi " + userDto.getFullName() + "</b>," +
"<br><i>Your username: <b>" + userDto.getEmail() + "</b></i>" +
"<br><i>Your password: <b>" + userDto.getPassword() + "</b></i>" +
"<br>Do not share this email with anyone!",
"<br> <p style=\"color: red;\">Do not share this email with anyone!</p>",
html);

javaMailSender.send(message);
}

public void sendMailNewPassword(String email, String newPassword) throws MessagingException {
String from = "noreply@spring.com";
String to = email;

MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);

helper.setSubject("Reset password!!");
helper.setFrom(from);
helper.setSubject(COMPANY_NAME + "Reset password!!");
helper.setFrom(FROM);
helper.setTo(to);

boolean html = true;
Expand All @@ -52,5 +53,21 @@ public void sendMailNewPassword(String email, String newPassword) throws Messagi

javaMailSender.send(message);
}

public void sendMailEmailChanged(String oldEmail, String newEmail) throws MessagingException {
String to = oldEmail;

MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);

helper.setSubject(COMPANY_NAME + "Email Changed");
helper.setFrom(FROM);
helper.setTo(to);

boolean html = true;
helper.setText("Account's email is changed to: <strong> " + newEmail + "</strong>", html);

javaMailSender.send(message);
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
Expand All @@ -40,8 +41,9 @@
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
private final RoleRepository roleRepository;
private final MailServiceImpl mailService;
private final boolean DEFAULT_STATUS = true;
private final String DEFAULT_PASSWORD = "123@456";
private final String DEFAULT_PASSWORD = "Abc@12345";
private final boolean BLOCK_STATUS = false;
private final boolean UN_BLOCK_STATUS = true;

Expand Down Expand Up @@ -79,7 +81,8 @@ public void createUser(UserDto userDto) {
User user = User.builder()
.email(userDto.getEmail())
.username(userDto.getEmail())
.password(AuthUtils.encodePassword(DEFAULT_PASSWORD))
.password(AuthUtils.encodePassword(userDto.getPassword() == null ?
DEFAULT_PASSWORD : userDto.getPassword()))
.active(DEFAULT_STATUS)
.fullName(userDto.getFullName())
.role(role.get())
Expand All @@ -106,6 +109,15 @@ public void updateUser(String id, UserUpdateDto userUpdateDto, String token) thr
// Update cho role staff
if (userUpdateDto.getEmail() != null) {
tempUser.setEmail(userUpdateDto.getEmail());

// Nếu email được cập nhật -> gửi mail
if (!userFromDb.getEmail().equals(tempUser.getEmail())) {
try {
mailService.sendMailEmailChanged(userFromDb.getEmail(), tempUser.getEmail());
} catch (MessagingException e) {
throw new RuntimeException(AuthMessage.ERROR_SEND_MAIL);
}
}
}
if (userUpdateDto.getFullName() != null) {
tempUser.setFullName(userUpdateDto.getFullName());
Expand Down
10 changes: 7 additions & 3 deletions src/main/java/com/example/demo/util/validator/AuthValidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ public static void notNullEmail(String email) throws NotNullException {
throw new NotNullException(UserMessage.EMAIL_REQUIRED);
}

public static void notNullFullName(String fullName) throws NotNullException {
if (fullName == null || fullName.trim().isEmpty())
throw new NotNullException(UserMessage.FULLNAME_REQUIRED);
}

public static void notNullUsername(String username) throws NotNullException {
if (username == null || username.trim().isEmpty())
throw new NotNullException(AuthMessage.USERNAME_REQUIRED);
Expand Down Expand Up @@ -48,11 +53,10 @@ public static void validatorLoginDTO(LoginDTO loginDTO) {
public static void validatorRegisterDTO(RegisterDTO registerDTO) {
notNullEmail(registerDTO.getEmail());
inValidEmail(registerDTO.getEmail());
notNullUsername(registerDTO.getUsername());
inValidUsername(registerDTO.getUsername());
notNullFullName(registerDTO.getFullName());

registerDTO.setEmail(registerDTO.getEmail().trim());
registerDTO.setUsername(registerDTO.getUsername().trim());
registerDTO.setFullName(registerDTO.getFullName().trim());
}

public static void validatorRefreshTokenDTO(RefreshTokenDTO refreshTokenDTO) {
Expand Down