Merge pull request #32886 from altairis-noe/element_type

QUAL: deleteObjectLinked() element value matching add_object_linked()
This commit is contained in:
Laurent Destailleur 2025-02-10 13:46:46 +01:00 committed by GitHub
commit 5e47f63c8b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -4558,10 +4558,11 @@ abstract class CommonObject
$deletetarget = true;
}
$element = $this->getElementType();
$sourceid = (!empty($sourceid) ? $sourceid : $this->id);
$sourcetype = (!empty($sourcetype) ? $sourcetype : $this->element);
$sourcetype = (!empty($sourcetype) ? $sourcetype : $element);
$targetid = (!empty($targetid) ? $targetid : $this->id);
$targettype = (!empty($targettype) ? $targettype : $this->element);
$targettype = (!empty($targettype) ? $targettype : $element);
$this->db->begin();
$error = 0;
@ -4587,14 +4588,14 @@ abstract class CommonObject
} else {
if ($deletesource) {
$sql .= " fk_source = " . ((int) $sourceid) . " AND sourcetype = '" . $this->db->escape($sourcetype) . "'";
$sql .= " AND fk_target = " . ((int) $this->id) . " AND targettype = '" . $this->db->escape($this->element) . "'";
$sql .= " AND fk_target = " . ((int) $this->id) . " AND targettype = '" . $this->db->escape($element) . "'";
} elseif ($deletetarget) {
$sql .= " fk_target = " . ((int) $targetid) . " AND targettype = '" . $this->db->escape($targettype) . "'";
$sql .= " AND fk_source = " . ((int) $this->id) . " AND sourcetype = '" . $this->db->escape($this->element) . "'";
$sql .= " AND fk_source = " . ((int) $this->id) . " AND sourcetype = '" . $this->db->escape($element) . "'";
} else {
$sql .= " (fk_source = " . ((int) $this->id) . " AND sourcetype = '" . $this->db->escape($this->element) . "')";
$sql .= " (fk_source = " . ((int) $this->id) . " AND sourcetype = '" . $this->db->escape($element) . "')";
$sql .= " OR";
$sql .= " (fk_target = " . ((int) $this->id) . " AND targettype = '" . $this->db->escape($this->element) . "')";
$sql .= " (fk_target = " . ((int) $this->id) . " AND targettype = '" . $this->db->escape($element) . "')";
}
}