dev #1
@@ -22,6 +22,12 @@ public class AdminUserRequest {
|
|||||||
@JsonProperty("password")
|
@JsonProperty("password")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
|
@JsonProperty("new_password")
|
||||||
|
private String newPassword;
|
||||||
|
|
||||||
|
@JsonProperty("old_password")
|
||||||
|
private String oldPassword;
|
||||||
|
|
||||||
@JsonProperty("is_super_admin")
|
@JsonProperty("is_super_admin")
|
||||||
private Boolean isSuperAdmin;
|
private Boolean isSuperAdmin;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package ru.soune.nocopy.adminpanel.exceptions;
|
||||||
|
|
||||||
|
public class WrongPassword extends RuntimeException {
|
||||||
|
public WrongPassword(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ import ru.soune.nocopy.adminpanel.entity.AdminUser;
|
|||||||
import ru.soune.nocopy.adminpanel.entity.PermissionType;
|
import ru.soune.nocopy.adminpanel.entity.PermissionType;
|
||||||
import ru.soune.nocopy.adminpanel.exceptions.AdminUserNotFoundException;
|
import ru.soune.nocopy.adminpanel.exceptions.AdminUserNotFoundException;
|
||||||
import ru.soune.nocopy.adminpanel.exceptions.EmailAlreadyExistsException;
|
import ru.soune.nocopy.adminpanel.exceptions.EmailAlreadyExistsException;
|
||||||
|
import ru.soune.nocopy.adminpanel.exceptions.WrongPassword;
|
||||||
import ru.soune.nocopy.adminpanel.permission.AdminPermission;
|
import ru.soune.nocopy.adminpanel.permission.AdminPermission;
|
||||||
import ru.soune.nocopy.adminpanel.service.AdminSectionPermissionService;
|
import ru.soune.nocopy.adminpanel.service.AdminSectionPermissionService;
|
||||||
import ru.soune.nocopy.adminpanel.service.AdminUserService;
|
import ru.soune.nocopy.adminpanel.service.AdminUserService;
|
||||||
@@ -198,8 +199,8 @@ public class AdminUserHandler implements RequestHandler {
|
|||||||
adminRequest.getAdminId(),
|
adminRequest.getAdminId(),
|
||||||
adminRequest.getFullName(),
|
adminRequest.getFullName(),
|
||||||
adminRequest.getEmail(),
|
adminRequest.getEmail(),
|
||||||
adminRequest.getPassword()
|
adminRequest.getOldPassword(),
|
||||||
);
|
adminRequest.getNewPassword());
|
||||||
|
|
||||||
return BaseResponse.builder()
|
return BaseResponse.builder()
|
||||||
.msgId(request.getMsgId())
|
.msgId(request.getMsgId())
|
||||||
@@ -219,6 +220,12 @@ public class AdminUserHandler implements RequestHandler {
|
|||||||
.messageCode(MessageCode.EMAIL_ALREADY_EXISTS.getCode())
|
.messageCode(MessageCode.EMAIL_ALREADY_EXISTS.getCode())
|
||||||
.messageDesc(MessageCode.EMAIL_ALREADY_EXISTS.getDescription())
|
.messageDesc(MessageCode.EMAIL_ALREADY_EXISTS.getDescription())
|
||||||
.build();
|
.build();
|
||||||
|
} catch (WrongPassword e) {
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.WRONG_PASSWORD.getCode())
|
||||||
|
.messageDesc(MessageCode.WRONG_PASSWORD.getDescription())
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import ru.soune.nocopy.adminpanel.entity.AdminUser;
|
import ru.soune.nocopy.adminpanel.entity.AdminUser;
|
||||||
import ru.soune.nocopy.adminpanel.exceptions.AdminUserNotFoundException;
|
import ru.soune.nocopy.adminpanel.exceptions.AdminUserNotFoundException;
|
||||||
import ru.soune.nocopy.adminpanel.exceptions.EmailAlreadyExistsException;
|
import ru.soune.nocopy.adminpanel.exceptions.EmailAlreadyExistsException;
|
||||||
|
import ru.soune.nocopy.adminpanel.exceptions.WrongPassword;
|
||||||
import ru.soune.nocopy.adminpanel.permission.AdminPermission;
|
import ru.soune.nocopy.adminpanel.permission.AdminPermission;
|
||||||
import ru.soune.nocopy.adminpanel.repository.AdminUserRepository;
|
import ru.soune.nocopy.adminpanel.repository.AdminUserRepository;
|
||||||
|
|
||||||
@@ -52,7 +53,7 @@ public class AdminUserService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public AdminUser update(Long id, String fullName, String email, String password) {
|
public AdminUser update(Long id, String fullName, String email, String oldPassword, String newPassword) {
|
||||||
AdminUser admin = findById(id);
|
AdminUser admin = findById(id);
|
||||||
|
|
||||||
if (fullName != null) admin.setFullName(fullName);
|
if (fullName != null) admin.setFullName(fullName);
|
||||||
@@ -64,8 +65,12 @@ public class AdminUserService {
|
|||||||
admin.setEmail(email);
|
admin.setEmail(email);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password != null && !password.isEmpty()) {
|
if (newPassword != null && oldPassword != null) {
|
||||||
admin.setPassword(passwordEncoder.encode(password));
|
if (passwordEncoder.matches(oldPassword, admin.getPassword())) {
|
||||||
|
admin.setPassword(passwordEncoder.encode(newPassword));
|
||||||
|
} else {
|
||||||
|
throw new WrongPassword("Old password not equal current");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return adminUserRepository.save(admin);
|
return adminUserRepository.save(admin);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ public enum MessageCode {
|
|||||||
INVALID_ACTION(2, "Invalid action"),
|
INVALID_ACTION(2, "Invalid action"),
|
||||||
ADMIN_NOT_FOUND(4, "Admin not found"),
|
ADMIN_NOT_FOUND(4, "Admin not found"),
|
||||||
EMAIL_ALREADY_EXISTS(2, "Email already exists"),
|
EMAIL_ALREADY_EXISTS(2, "Email already exists"),
|
||||||
|
WRONG_PASSWORD(2, "Wrong password"),
|
||||||
INVALID_CREDENTIALS(2, "Invalid credentials"),
|
INVALID_CREDENTIALS(2, "Invalid credentials"),
|
||||||
PERMISSION_DENIED(2, "Permission denied"),
|
PERMISSION_DENIED(2, "Permission denied"),
|
||||||
ADMIN_INACTIVE(2, "Admin is inactive");
|
ADMIN_INACTIVE(2, "Admin is inactive");
|
||||||
|
|||||||
Reference in New Issue
Block a user