dev #1
@@ -34,6 +34,9 @@ public class AdminUserRequest {
|
|||||||
@JsonProperty("is_active")
|
@JsonProperty("is_active")
|
||||||
private Boolean isActive;
|
private Boolean isActive;
|
||||||
|
|
||||||
|
@JsonProperty("change_password")
|
||||||
|
private Boolean changePassword;
|
||||||
|
|
||||||
@JsonProperty("permissions")
|
@JsonProperty("permissions")
|
||||||
private Map<String, Integer> permissions;
|
private Map<String, Integer> permissions;
|
||||||
|
|
||||||
|
|||||||
@@ -108,11 +108,15 @@ public class AdminUserHandler implements RequestHandler {
|
|||||||
private BaseResponse handleCreate(BaseRequest request, AdminUserRequest adminRequest) {
|
private BaseResponse handleCreate(BaseRequest request, AdminUserRequest adminRequest) {
|
||||||
try {
|
try {
|
||||||
boolean superAdmin = adminRequest.getIsSuperAdmin() != null && adminRequest.getIsSuperAdmin();
|
boolean superAdmin = adminRequest.getIsSuperAdmin() != null && adminRequest.getIsSuperAdmin();
|
||||||
|
boolean changePassword = adminRequest.getChangePassword() != null ? adminRequest.getChangePassword():
|
||||||
|
!superAdmin;
|
||||||
|
|
||||||
AdminUser admin = adminUserService.create(
|
AdminUser admin = adminUserService.create(
|
||||||
adminRequest.getFullName(),
|
adminRequest.getFullName(),
|
||||||
adminRequest.getEmail(),
|
adminRequest.getEmail(),
|
||||||
adminRequest.getPassword(),
|
adminRequest.getPassword(),
|
||||||
superAdmin);
|
changePassword, superAdmin);
|
||||||
|
|
||||||
Map<String, Integer> permissions = adminRequest.getPermissions();
|
Map<String, Integer> permissions = adminRequest.getPermissions();
|
||||||
Map<AdminSection, Integer> sectionPermissons = new HashMap<>();
|
Map<AdminSection, Integer> sectionPermissons = new HashMap<>();
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class AdminUserService {
|
|||||||
private final PasswordEncoder passwordEncoder;
|
private final PasswordEncoder passwordEncoder;
|
||||||
|
|
||||||
@Transactional
|
@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)) {
|
if (adminUserRepository.existsByEmail(email)) {
|
||||||
throw new EmailAlreadyExistsException("Email already exists: " + email);
|
throw new EmailAlreadyExistsException("Email already exists: " + email);
|
||||||
}
|
}
|
||||||
@@ -33,7 +33,7 @@ public class AdminUserService {
|
|||||||
admin.setPassword(passwordEncoder.encode(password));
|
admin.setPassword(passwordEncoder.encode(password));
|
||||||
admin.setCreatedAt(LocalDateTime.now());
|
admin.setCreatedAt(LocalDateTime.now());
|
||||||
admin.setIsActive(true);
|
admin.setIsActive(true);
|
||||||
admin.setIsActivePassword(superAdmin);
|
admin.setIsActivePassword(changePassword);
|
||||||
admin.setPermissions(superAdmin ? AdminPermission.SUPER_ADMIN_PERMISSIONS : AdminPermission.DEFAULT_PERMISSIONS);
|
admin.setPermissions(superAdmin ? AdminPermission.SUPER_ADMIN_PERMISSIONS : AdminPermission.DEFAULT_PERMISSIONS);
|
||||||
|
|
||||||
return adminUserRepository.save(admin);
|
return adminUserRepository.save(admin);
|
||||||
|
|||||||
Reference in New Issue
Block a user