From 4e2ea778d8015b51753240ddddcee5b020adfc6b Mon Sep 17 00:00:00 2001 From: sunhao Date: Wed, 6 Nov 2024 12:00:12 +0800 Subject: [PATCH] * [bug #56744] fix restore related object now work on expected on delete doc. --- module/action/model.php | 5 +++-- module/action/tao.php | 16 +++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/module/action/model.php b/module/action/model.php index ac6c7071b7..f6a1cb0789 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -1448,8 +1448,9 @@ class actionModel extends model $action = $this->getById($actionID); if(!$action || $action->action != 'deleted') return false; - list($table, $orderby, $field) = $this->actionTao->getUndeleteParamsByObjectType($action->objectType); - $object = $this->actionTao->getObjectBaseInfo($table, array('id' => $action->objectID), $field, $orderby); + list($table, $orderby, $field, $queryKey) = $this->actionTao->getUndeleteParamsByObjectType($action->objectType); + if(empty($queryKey)) $queryKey = 'id'; + $object = $this->actionTao->getObjectBaseInfo($table, array($queryKey => $action->objectID), $field, $orderby); if(empty($object)) return false; $result = $this->checkActionCanUndelete($action, $object); diff --git a/module/action/tao.php b/module/action/tao.php index 2b5824fa40..a3a2559c7d 100644 --- a/module/action/tao.php +++ b/module/action/tao.php @@ -983,9 +983,10 @@ class actionTao extends actionModel */ public function getUndeleteParamsByObjectType(string $objectType): array { - $table = $this->config->objectTables[$objectType]; - $orderby = ''; - $field = '*'; + $table = $this->config->objectTables[$objectType]; + $orderby = ''; + $field = '*'; + $queryKey = 'id'; switch($objectType) { case 'product': @@ -996,11 +997,12 @@ class actionTao extends actionModel $field = 'id, acl, name, hasProduct'; break; case 'doc': - $table = TABLE_DOCCONTENT; - $orderby = 'version desc'; + $table = TABLE_DOCCONTENT; + $orderby = 'version desc'; + $queryKey = 'doc'; default: break; - } - return array($table, $orderby, $field); + } + return array($table, $orderby, $field, $queryKey); } }