Skip to content

Commit 1336559

Browse files
committed
Add PasswordResetRequestDto for password reset functionality and update resetPassword method
1 parent 79faeb1 commit 1336559

2 files changed

Lines changed: 23 additions & 3 deletions

File tree

src/main/java/com/digitalsanctuary/spring/user/api/UserAPI.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.springframework.web.bind.annotation.RestController;
1717
import com.digitalsanctuary.spring.user.audit.AuditEvent;
1818
import com.digitalsanctuary.spring.user.dto.PasswordDto;
19+
import com.digitalsanctuary.spring.user.dto.PasswordResetRequestDto;
1920
import com.digitalsanctuary.spring.user.dto.UserDto;
2021
import com.digitalsanctuary.spring.user.event.OnRegistrationCompleteEvent;
2122
import com.digitalsanctuary.spring.user.exceptions.InvalidOldPasswordException;
@@ -133,13 +134,13 @@ public ResponseEntity<JSONResponse> updateUserAccount(@AuthenticationPrincipal D
133134
* This is used when the user has forgotten their password and wants to reset their password. This will send an email to the user with a link to
134135
* reset their password.
135136
*
136-
* @param userDto the user data transfer object containing user details
137+
* @param passwordResetRequest the password reset request containing the email address
137138
* @param request the HTTP servlet request
138139
* @return a ResponseEntity containing a JSONResponse with the password reset email send result
139140
*/
140141
@PostMapping("/resetPassword")
141-
public ResponseEntity<JSONResponse> resetPassword(@Valid @RequestBody UserDto userDto, HttpServletRequest request) {
142-
User user = userService.findUserByEmail(userDto.getEmail());
142+
public ResponseEntity<JSONResponse> resetPassword(@Valid @RequestBody PasswordResetRequestDto passwordResetRequest, HttpServletRequest request) {
143+
User user = userService.findUserByEmail(passwordResetRequest.getEmail());
143144
if (user != null) {
144145
userEmailService.sendForgotPasswordVerificationEmail(user, UserUtils.getAppUrl(request));
145146
logAuditEvent("Reset Password", "Success", "Password reset email sent", user, request);
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.digitalsanctuary.spring.user.dto;
2+
3+
import jakarta.validation.constraints.Email;
4+
import jakarta.validation.constraints.NotBlank;
5+
import jakarta.validation.constraints.Size;
6+
import lombok.Data;
7+
8+
/**
9+
* DTO for password reset requests. Contains only the email field needed for initiating a password reset.
10+
*/
11+
@Data
12+
public class PasswordResetRequestDto {
13+
14+
/** The email address for password reset */
15+
@NotBlank(message = "Email is required")
16+
@Email(message = "Please provide a valid email address")
17+
@Size(max = 100, message = "Email must not exceed 100 characters")
18+
private String email;
19+
}

0 commit comments

Comments
 (0)