diff --git a/application/Espo/Core/Select/Text/DefaultFilter.php b/application/Espo/Core/Select/Text/DefaultFilter.php index 77a93fae6b..18bab91708 100644 --- a/application/Espo/Core/Select/Text/DefaultFilter.php +++ b/application/Espo/Core/Select/Text/DefaultFilter.php @@ -104,6 +104,14 @@ class DefaultFilter implements Filter return; } + if ( + !str_contains($attribute, '.') && + $this->metadataProvider->getFieldType($this->entityType, $attribute) === 'email' && + str_contains($filter, ' ') + ) { + return; + } + $expression = $filter; if (!$skipWildcards) { diff --git a/application/Espo/Core/Select/Text/MetadataProvider.php b/application/Espo/Core/Select/Text/MetadataProvider.php index a58d3ab81a..f81d6774d8 100644 --- a/application/Espo/Core/Select/Text/MetadataProvider.php +++ b/application/Espo/Core/Select/Text/MetadataProvider.php @@ -120,6 +120,17 @@ class MetadataProvider ->getType(); } + public function getFieldType(string $entityType, string $field): ?string + { + $entityDefs = $this->ormDefs->getEntity($entityType); + + if (!$entityDefs->hasField($field)) { + return null; + } + + return $entityDefs->getField($field)->getType(); + } + public function getRelationEntityType(string $entityType, string $link): ?string { $relationDefs = $this->ormDefs