Skip to content

Commit a2bd841

Browse files
committed
feature: Initial Implementation of lost-password api endpoint
1 parent 2f38c64 commit a2bd841

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public interface UserService {
5050

5151
Mono<String> resetPassword(String userId);
5252

53+
Mono<String> lostPassword(String userEmail);
54+
5355
Mono<Boolean> setPassword(String userId, String password);
5456

5557
Mono<UserDetail> buildUserDetail(User user, boolean withoutDynamicGroups);

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040

4141
import javax.annotation.Nonnull;
4242
import java.security.SecureRandom;
43+
import java.time.Duration;
44+
import java.time.LocalDate;
4345
import java.util.*;
4446
import java.util.function.Function;
4547
import java.util.stream.Collectors;
@@ -262,6 +264,14 @@ public Mono<String> resetPassword(String userId) {
262264
});
263265
}
264266

267+
@Override
268+
public Mono<String> lostPassword(String userEmail) {
269+
return findByName(userEmail)
270+
.flatMap(user -> {
271+
return Mono.justOrEmpty(user.getName());
272+
});
273+
}
274+
265275
@SuppressWarnings("SpellCheckingInspection")
266276
@Nonnull
267277
private static String generateNewRandomPwd() {

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserApiService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ public Mono<String> resetPassword(String userId) {
6565
.then(userService.resetPassword(userId));
6666
}
6767

68+
public Mono<String> lostPassword(String userEmail) {
69+
return userService.lostPassword(userEmail);
70+
}
71+
6872
// ========================== TOKEN OPERATIONS START ==========================
6973

7074
public Mono<Void> saveToken(String userId, String source, String token) {

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserController.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,15 @@ public Mono<ResponseView<String>> resetPassword(@RequestBody ResetPasswordReques
146146

147147
}
148148

149+
@Override
150+
public Mono<ResponseView<String>> lostPassword(@RequestBody LostPasswordRequest request) {
151+
if (StringUtils.isBlank(request.userEmail())) {
152+
return ofError(BizError.INVALID_PARAMETER, "INVALID_USER_EMAIL");
153+
}
154+
return userApiService.lostPassword(request.userEmail())
155+
.map(ResponseView::success);
156+
}
157+
149158
@Override
150159
public Mono<ResponseView<Boolean>> setPassword(@RequestParam String password) {
151160
if (StringUtils.isBlank(password)) {

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserEndpoints.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ public interface UserEndpoints
121121
@PostMapping("/reset-password")
122122
public Mono<ResponseView<String>> resetPassword(@RequestBody ResetPasswordRequest request);
123123

124+
@PostMapping("/lost-password")
125+
public Mono<ResponseView<String>> lostPassword(@RequestBody LostPasswordRequest userEmail);
126+
124127
@Operation(
125128
tags = TAG_USER_PASSWORD_MANAGEMENT,
126129
operationId = "setPassword",
@@ -151,6 +154,9 @@ public interface UserEndpoints
151154
public record ResetPasswordRequest(String userId) {
152155
}
153156

157+
public record LostPasswordRequest(String userEmail) {
158+
}
159+
154160
public record UpdatePasswordRequest(String oldPassword, String newPassword) {
155161
}
156162

0 commit comments

Comments
 (0)