From e7373ab817bb5f130acf646599045fbb4f06a17c Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 28 Feb 2023 14:03:18 +0200 Subject: [PATCH] mass action encode serialized data --- application/Espo/Core/MassAction/Service.php | 3 ++- application/Espo/Entities/Export.php | 2 +- application/Espo/Entities/MassAction.php | 2 +- application/Espo/Tools/Export/Service.php | 3 ++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/application/Espo/Core/MassAction/Service.php b/application/Espo/Core/MassAction/Service.php index 0882ace220..dc9f7b275b 100644 --- a/application/Espo/Core/MassAction/Service.php +++ b/application/Espo/Core/MassAction/Service.php @@ -147,7 +147,8 @@ class Service $entity = $this->entityManager->createEntity(MassActionEntity::ENTITY_TYPE, [ 'entityType' => $entityType, 'action' => $action, - 'params' => serialize($params), + // Additional encoding to handle null-character issue in PostgreSQL. + 'params' => base64_encode(serialize($params)), 'data' => $data, ]); diff --git a/application/Espo/Entities/Export.php b/application/Espo/Entities/Export.php index 0137f6c694..b3bc722bd0 100644 --- a/application/Espo/Entities/Export.php +++ b/application/Espo/Entities/Export.php @@ -58,7 +58,7 @@ class Export extends Entity } /** @var Params $params */ - $params = unserialize($raw); + $params = unserialize(base64_decode($raw)); return $params; } diff --git a/application/Espo/Entities/MassAction.php b/application/Espo/Entities/MassAction.php index c95e2148c4..9dcda71cee 100644 --- a/application/Espo/Entities/MassAction.php +++ b/application/Espo/Entities/MassAction.php @@ -61,7 +61,7 @@ class MassAction extends Entity } /** @var Params $params */ - $params = unserialize($raw); + $params = unserialize(base64_decode($raw)); return $params; } diff --git a/application/Espo/Tools/Export/Service.php b/application/Espo/Tools/Export/Service.php index ba98b56ff9..c9d0e52788 100644 --- a/application/Espo/Tools/Export/Service.php +++ b/application/Espo/Tools/Export/Service.php @@ -133,7 +133,8 @@ class Service private function schedule(Params $params): ServiceResult { $entity = $this->entityManager->createEntity(ExportEntity::ENTITY_TYPE, [ - 'params' => serialize($params), + // Additional encoding to handle null-character issue in PostgreSQL. + 'params' => base64_encode(serialize($params)), ]); $this->jobSchedulerFactory