dev #1
@@ -48,7 +48,8 @@ public class AdminUserHandler implements RequestHandler {
|
|||||||
case "set_super_admin" -> handleSetSuperAdmin(request, adminRequest);
|
case "set_super_admin" -> handleSetSuperAdmin(request, adminRequest);
|
||||||
case "toggle_active" -> handleToggleActive(request, adminRequest);
|
case "toggle_active" -> handleToggleActive(request, adminRequest);
|
||||||
case "delete" -> handleDelete(request, adminRequest);
|
case "delete" -> handleDelete(request, adminRequest);
|
||||||
case "get_permissions" -> handleGetPermissions(request, adminRequest);
|
case "get_permissions_by_id" -> handleGetPermissionsById(request, adminRequest);
|
||||||
|
case "get_permissions_by_token" -> handleGetPermissionsByToken(request);
|
||||||
case "update_permissions" -> handleUpdatePermissions(request, adminRequest);
|
case "update_permissions" -> handleUpdatePermissions(request, adminRequest);
|
||||||
default -> handleInvalidAction(request, action);
|
default -> handleInvalidAction(request, action);
|
||||||
};
|
};
|
||||||
@@ -263,7 +264,7 @@ public class AdminUserHandler implements RequestHandler {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private BaseResponse handleGetPermissions(BaseRequest request, AdminUserRequest adminRequest) {
|
private BaseResponse handleGetPermissionsById(BaseRequest request, AdminUserRequest adminRequest) {
|
||||||
try {
|
try {
|
||||||
Long userId = adminRequest.getAdminId();
|
Long userId = adminRequest.getAdminId();
|
||||||
AdminUser admin = adminUserService.findById(userId);
|
AdminUser admin = adminUserService.findById(userId);
|
||||||
@@ -299,6 +300,50 @@ public class AdminUserHandler implements RequestHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BaseResponse handleGetPermissionsByToken(BaseRequest request) {
|
||||||
|
try {
|
||||||
|
String token = request.getToken();
|
||||||
|
if (token == null || token.isEmpty()) {
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.INVALID_CREDENTIALS.getCode())
|
||||||
|
.messageDesc("Token is required")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
String email = jwtUtil.extractEmail(token);
|
||||||
|
AdminUser admin = adminUserService.findByEmail(email);
|
||||||
|
Map<AdminSection, Integer> sectionPermissions = permissionService.getAllPermissions(admin.getId());
|
||||||
|
|
||||||
|
Map<String, Integer> permissionsMap = new HashMap<>();
|
||||||
|
sectionPermissions.forEach((section, value) ->
|
||||||
|
permissionsMap.put(section.name().toLowerCase(), value));
|
||||||
|
|
||||||
|
AdminUserResponse response = AdminUserResponse.builder()
|
||||||
|
.id(admin.getId())
|
||||||
|
.fullName(admin.getFullName())
|
||||||
|
.email(admin.getEmail())
|
||||||
|
.isActive(admin.getIsActive())
|
||||||
|
.isSuperAdmin(AdminPermission.isSuperAdmin(admin.getPermissions()))
|
||||||
|
.createdAt(admin.getCreatedAt().toString())
|
||||||
|
.permissions(permissionsMap)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.SUCCESS.getCode())
|
||||||
|
.messageDesc(MessageCode.SUCCESS.getDescription())
|
||||||
|
.messageBody(response)
|
||||||
|
.build();
|
||||||
|
} catch (AdminUserNotFoundException e) {
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.ADMIN_NOT_FOUND.getCode())
|
||||||
|
.messageDesc(MessageCode.ADMIN_NOT_FOUND.getDescription())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private BaseResponse handleUpdatePermissions(BaseRequest request, AdminUserRequest adminRequest) {
|
private BaseResponse handleUpdatePermissions(BaseRequest request, AdminUserRequest adminRequest) {
|
||||||
try {
|
try {
|
||||||
Long userId = adminRequest.getAdminId();
|
Long userId = adminRequest.getAdminId();
|
||||||
|
|||||||
Reference in New Issue
Block a user