From ed52fe3c519c10844c1f82d8e1adbe0d70fd00bd Mon Sep 17 00:00:00 2001 From: backdev-1 Date: Wed, 20 May 2026 12:45:24 +0700 Subject: [PATCH] add add flag for active password --- .../ru/soune/nocopy/adminpanel/dto/AdminUserRequest.java | 3 +++ .../soune/nocopy/adminpanel/handler/AdminUserHandler.java | 6 +++++- .../soune/nocopy/adminpanel/service/AdminUserService.java | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/adminpanel/dto/AdminUserRequest.java b/src/main/java/ru/soune/nocopy/adminpanel/dto/AdminUserRequest.java index bbca2a8..dab02f1 100644 --- a/src/main/java/ru/soune/nocopy/adminpanel/dto/AdminUserRequest.java +++ b/src/main/java/ru/soune/nocopy/adminpanel/dto/AdminUserRequest.java @@ -34,6 +34,9 @@ public class AdminUserRequest { @JsonProperty("is_active") private Boolean isActive; + @JsonProperty("change_password") + private Boolean changePassword; + @JsonProperty("permissions") private Map permissions; diff --git a/src/main/java/ru/soune/nocopy/adminpanel/handler/AdminUserHandler.java b/src/main/java/ru/soune/nocopy/adminpanel/handler/AdminUserHandler.java index 474e25b..85acc93 100644 --- a/src/main/java/ru/soune/nocopy/adminpanel/handler/AdminUserHandler.java +++ b/src/main/java/ru/soune/nocopy/adminpanel/handler/AdminUserHandler.java @@ -108,11 +108,15 @@ public class AdminUserHandler implements RequestHandler { private BaseResponse handleCreate(BaseRequest request, AdminUserRequest adminRequest) { try { boolean superAdmin = adminRequest.getIsSuperAdmin() != null && adminRequest.getIsSuperAdmin(); + boolean changePassword = adminRequest.getChangePassword() != null ? adminRequest.getChangePassword(): + !superAdmin; + AdminUser admin = adminUserService.create( adminRequest.getFullName(), adminRequest.getEmail(), adminRequest.getPassword(), - superAdmin); + changePassword, superAdmin); + Map permissions = adminRequest.getPermissions(); Map sectionPermissons = new HashMap<>(); diff --git a/src/main/java/ru/soune/nocopy/adminpanel/service/AdminUserService.java b/src/main/java/ru/soune/nocopy/adminpanel/service/AdminUserService.java index 6930f16..c187fb3 100644 --- a/src/main/java/ru/soune/nocopy/adminpanel/service/AdminUserService.java +++ b/src/main/java/ru/soune/nocopy/adminpanel/service/AdminUserService.java @@ -22,7 +22,7 @@ public class AdminUserService { private final PasswordEncoder passwordEncoder; @Transactional - public AdminUser create(String fullName, String email, String password, boolean superAdmin) { + public AdminUser create(String fullName, String email, String password, boolean changePassword, boolean superAdmin) { if (adminUserRepository.existsByEmail(email)) { throw new EmailAlreadyExistsException("Email already exists: " + email); } @@ -33,7 +33,7 @@ public class AdminUserService { admin.setPassword(passwordEncoder.encode(password)); admin.setCreatedAt(LocalDateTime.now()); admin.setIsActive(true); - admin.setIsActivePassword(superAdmin); + admin.setIsActivePassword(changePassword); admin.setPermissions(superAdmin ? AdminPermission.SUPER_ADMIN_PERMISSIONS : AdminPermission.DEFAULT_PERMISSIONS); return adminUserRepository.save(admin);