mass-update, lead capture: use sanitize

This commit is contained in:
Yuri Kuznetsov
2023-11-11 18:04:10 +02:00
parent 2ed8edf842
commit 2ff25224f2
2 changed files with 10 additions and 14 deletions
@@ -39,6 +39,7 @@ use Espo\Core\FieldValidation\FieldValidationParams;
use Espo\Core\HookManager;
use Espo\Core\Job\QueueName;
use Espo\Core\ORM\EntityManager;
use Espo\Core\Record\ServiceContainer;
use Espo\Core\Utils\DateTime as DateTimeUtil;
use Espo\Core\Utils\FieldUtil;
use Espo\Core\Utils\Language;
@@ -67,7 +68,8 @@ class CaptureService
private FieldValidationManager $fieldValidationManager,
private JobSchedulerFactory $jobSchedulerFactory,
private CampaignService $campaignService,
private PhoneNumberSanitizer $phoneNumberSanitizer
private PhoneNumberSanitizer $phoneNumberSanitizer,
private ServiceContainer $serviceContainer
) {}
/**
@@ -467,9 +469,10 @@ class CaptureService
throw new Error('No field list specified.');
}
$this->setFields($fieldList, $data, $lead);
$this->sanitizePhoneNumber($fieldList, $data, $leadCapture);
$this->serviceContainer->getByClass(Lead::class)->sanitizeInput($data);
$this->sanitizePhoneNumber($fieldList, $data, $lead, $leadCapture);
$this->setFields($fieldList, $data, $lead);
if ($leadCapture->getLeadSource()) {
$lead->set('source', $leadCapture->getLeadSource());
@@ -663,21 +666,18 @@ class CaptureService
private function sanitizePhoneNumber(
array $fieldList,
stdClass $data,
Lead $lead,
LeadCaptureEntity $leadCapture
): void {
if (
!in_array('phoneNumber', $fieldList) ||
!isset($data->phoneNumber) ||
$lead->getPhoneNumber() === null
!is_string($data->phoneNumber)
) {
return;
}
$value = $this->phoneNumberSanitizer
->sanitize($lead->getPhoneNumber(), $leadCapture->getPhoneNumberCountry());
$lead->set('phoneNumber', $value);
$data->phoneNumber = $this->phoneNumberSanitizer
->sanitize($data->phoneNumber, $leadCapture->getPhoneNumberCountry());
}
}
@@ -36,21 +36,16 @@ use Espo\Core\FieldProcessing\Loader\Params as LoaderParams;
use Espo\Core\MassAction\QueryBuilder;
use Espo\Core\MassAction\Params;
use Espo\Core\MassAction\Result;
use Espo\Core\Acl;
use Espo\Core\Acl\Table;
use Espo\Core\Record\Access\LinkCheck;
use Espo\Core\Record\ActionHistory\Action as RecordAction;
use Espo\Core\Record\ServiceFactory;
use Espo\Core\Record\Service;
use Espo\Core\Utils\FieldUtil;
use Espo\Core\Exceptions\Forbidden;
use Espo\Entities\ActionHistoryRecord;
use Espo\ORM\EntityManager;
use Espo\ORM\Entity;
use Espo\Repositories\Attachment as AttachmentRepository;
use Espo\Entities\User;
use Espo\Entities\Attachment;
@@ -137,6 +132,7 @@ class Processor
$values = $data->getValues();
$service->filterUpdateInput($values);
$service->sanitizeInput($values);
foreach ($data->getAttributeList() as $attribute) {
if (!property_exists($values, $attribute)) {