From 4c69865480321edbd6fd3dd097557c5918f65120 Mon Sep 17 00:00:00 2001 From: Molkobain Date: Mon, 8 Nov 2021 19:21:43 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B02875=20-=20Fix=20error=20when=20trigger?= =?UTF-8?q?=20has=20an=20OQL=20on=20a=20root=20class=20which=20is=20not=20?= =?UTF-8?q?abstract?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/trigger.class.inc.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/trigger.class.inc.php b/core/trigger.class.inc.php index fbbb60747..1e64cffcb 100644 --- a/core/trigger.class.inc.php +++ b/core/trigger.class.inc.php @@ -611,8 +611,17 @@ class TriggerOnObjectMention extends TriggerOnObject if (strlen($sFilter) > 0) { $oSearch = DBObjectSearch::FromOQL($sFilter); + $sSearchClass = $oSearch->GetClass(); + + // If filter not on current object class (or descendants), consider it as not in scope + if (is_a($oObject, $sSearchClass, true) === false) { + return false; + } + $oSearch->AddCondition('id', $oObject->GetKey(), '='); - $oSearch->AddCondition('finalclass', get_class($oObject), '='); + if (MetaModel::IsAbstract($oSearch->GetClass())) { + $oSearch->AddCondition('finalclass', get_class($oObject), '='); + } $aParams = $oObject->ToArgs('this'); $oSet = new DBObjectSet($oSearch, [], $aParams);