From b91d2c19714105d5dc9560c7e8ffae8709c5e5c9 Mon Sep 17 00:00:00 2001 From: Nivanka Fonseka Date: Thu, 5 Dec 2019 13:23:59 +0530 Subject: [PATCH] prevent creating search docs for unpublished pages --- src/Extensions/SearchDocumentGenerator.php | 14 +++++++++++--- src/ORM/Connect/MySQLDatabase.php | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Extensions/SearchDocumentGenerator.php b/src/Extensions/SearchDocumentGenerator.php index b9a3b29..77fe4f1 100644 --- a/src/Extensions/SearchDocumentGenerator.php +++ b/src/Extensions/SearchDocumentGenerator.php @@ -100,10 +100,18 @@ public static function case_create_document(DataObject $object) { $schema = DataObject::getSchema(); $fields = $schema->databaseFields($object->ClassName); - if(array_key_exists('ShowInSearch', $fields)) { - return $object->getField('ShowInSearch'); + $ret = true; + if (self::is_versioned($object)) { + if (!$object->isPublished()) { + $ret = false; + } + } + if ($ret) { + if (array_key_exists('ShowInSearch', $fields)) { + $ret = $object->getField('ShowInSearch'); + } } - return true; + return $ret; } public static function is_versioned(DataObject $object) diff --git a/src/ORM/Connect/MySQLDatabase.php b/src/ORM/Connect/MySQLDatabase.php index 2e297c4..ef92a9e 100644 --- a/src/ORM/Connect/MySQLDatabase.php +++ b/src/ORM/Connect/MySQLDatabase.php @@ -175,7 +175,7 @@ public function searchEngine( foreach ($records as $record) { $object = DataList::create($record['ClassName'])->byID($record['ID']); - if ($object->canView()) { + if ($object && $object->canView()) { $objects[] = $object; } }