diff --git a/src/main/java/com/github/gribanoveu/cuddle/controllers/secure/UserControllerImpl.java b/src/main/java/com/github/gribanoveu/cuddle/controllers/secure/UserControllerImpl.java index 12e9a93..11e56be 100644 --- a/src/main/java/com/github/gribanoveu/cuddle/controllers/secure/UserControllerImpl.java +++ b/src/main/java/com/github/gribanoveu/cuddle/controllers/secure/UserControllerImpl.java @@ -7,6 +7,7 @@ import com.github.gribanoveu.cuddle.entities.services.EmailService; import com.github.gribanoveu.cuddle.entities.services.UserService; import com.github.gribanoveu.cuddle.entities.tables.User; +import com.github.gribanoveu.cuddle.exeptions.CredentialEx; import com.github.gribanoveu.cuddle.utils.emails.EmailTemplates; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -27,7 +28,8 @@ public class UserControllerImpl { public ResponseEntity getUserData(Authentication authentication) { var userData = userService.findUserByEmail(authentication.getName()); - return ResponseEntity.ok(userData); + if (userData.getProfileCreated()) return ResponseEntity.ok(userData); + throw new CredentialEx(ResponseCode.PROFILE_NOT_CREATED); } public ResponseEntity deleteUser(Authentication authentication) { @@ -36,5 +38,4 @@ public ResponseEntity deleteUser(Authentication authentication) EmailMessages.deleteSubject, EmailMessages.deleteSelfTemplate)); return ResponseEntity.ok(StatusResponse.create(ResponseCode.USER_DELETED, StatusLevel.SUCCESS)); } -} - +} \ No newline at end of file diff --git a/src/main/java/com/github/gribanoveu/cuddle/dtos/enums/ResponseCode.java b/src/main/java/com/github/gribanoveu/cuddle/dtos/enums/ResponseCode.java index 638f64f..a1828ee 100644 --- a/src/main/java/com/github/gribanoveu/cuddle/dtos/enums/ResponseCode.java +++ b/src/main/java/com/github/gribanoveu/cuddle/dtos/enums/ResponseCode.java @@ -25,8 +25,8 @@ public enum ResponseCode { ), UNAUTHORIZED( "AUT-102", - "Несанкционированный доступ", - "Требуется авторизация. Войдите в свою учетную запись, чтобы получить доступ к этой странице. Если вы забыли свои учетные данные, воспользуйтесь функцией восстановления пароля", + "Требуется авторизация", + "Войдите в свою учетную запись, чтобы получить доступ к этой странице. Если вы забыли свои учетные данные, воспользуйтесь функцией восстановления пароля", HttpStatus.UNAUTHORIZED ), BAD_CREDENTIAL( @@ -83,6 +83,12 @@ public enum ResponseCode { "На вашей учетной записи нет никаких ограничений", HttpStatus.NOT_FOUND ), + PROFILE_NOT_CREATED( + "AUT-112", + "Создать профиль", + "Для продолжения требуется заполнить профиль", + HttpStatus.NOT_FOUND + ), PASSWORD_UPDATED( "AUT-200", "Пароль обновлен", diff --git a/src/main/java/com/github/gribanoveu/cuddle/entities/tables/User.java b/src/main/java/com/github/gribanoveu/cuddle/entities/tables/User.java index 9612507..5c8714d 100644 --- a/src/main/java/com/github/gribanoveu/cuddle/entities/tables/User.java +++ b/src/main/java/com/github/gribanoveu/cuddle/entities/tables/User.java @@ -58,6 +58,9 @@ public class User { @Column(name = "role") private Role role; + @Column(name = "profile_created") + private Boolean profileCreated; + @Column(name = "account_non_expired") private Boolean accountNonExpired = true; diff --git a/src/main/resources/db/migration/V1_3__add_profile_created_to_user.sql b/src/main/resources/db/migration/V1_3__add_profile_created_to_user.sql new file mode 100644 index 0000000..cad8835 --- /dev/null +++ b/src/main/resources/db/migration/V1_3__add_profile_created_to_user.sql @@ -0,0 +1 @@ +ALTER TABLE users ADD profile_created BOOLEAN NOT NULL default false; \ No newline at end of file