From 504d19ee9225aaa716bfff37d0c92675dbecbe57 Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Mon, 28 Mar 2022 11:09:12 +0800 Subject: [PATCH] * Fix bug #17995. --- module/api/control.php | 18 ++++++------------ module/api/model.php | 8 +++++++- module/doc/model.php | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/module/api/control.php b/module/api/control.php index 6711f0db26..39a9ea20d7 100755 --- a/module/api/control.php +++ b/module/api/control.php @@ -319,21 +319,15 @@ class api extends control { if(!empty($_POST)) { - if($type == 'demo') - { - $libID = $this->api->createDemoData($this->post->name, $this->post->baseUrl); - return $this->sendSuccess(array('locate' => $this->createLink('api', 'index', "libID=$libID"))); - } + $libID = $type == 'demo' ? $this->api->createDemoData($this->post->name, $this->post->baseUrl) : $this->doc->createApiLib(); + if(dao::isError()) return $this->sendError(dao::getError()); - /* save api doc library */ - $libID = $this->doc->createApiLib(); - if(dao::isError()) - { - return $this->sendError(dao::getError()); - } + /* If the created api library of imported zentao api library, return directly. */ + if($type == 'demo') return $this->sendSuccess(array('locate' => $this->createLink('api', 'index', "libID=$libID"))); + + /* Record action for create api library. */ $this->action->create('docLib', $libID, 'Created'); - /* save doc library success */ return $this->sendSuccess(array('locate' => $this->createLink('api', 'index', "libID=$libID"))); } diff --git a/module/api/model.php b/module/api/model.php index 4e5b6b997c..ba6fb7259c 100644 --- a/module/api/model.php +++ b/module/api/model.php @@ -742,6 +742,9 @@ class apiModel extends model */ public function createDemoData($name, $baseUrl, $version = '16.0') { + /* Replace the doc lib name to api lib name. */ + $this->lang->doclib->name = $this->lang->doclib->apiLibName; + $firstAccount = $this->dao->select('account')->from(TABLE_USER)->orderBy('id_asc')->limit(1)->fetch('account'); $currentAccount = isset($this->app->user->account) ? $this->app->user->account : $firstAccount; @@ -752,7 +755,10 @@ class apiModel extends model $lib->baseUrl = $baseUrl; $lib->acl = 'open'; $lib->users = ',' . $currentAccount . ','; - $this->dao->insert(TABLE_DOCLIB)->data($lib)->exec(); + $this->dao->insert(TABLE_DOCLIB)->data($lib)->autoCheck() + ->batchCheck($this->config->api->createlib->requiredFields, 'notempty') + ->check('name', 'unique', "`type` = 'api'") + ->exec(); $libID = $this->dao->lastInsertID(); diff --git a/module/doc/model.php b/module/doc/model.php index 2b1aea9e20..bc7774264c 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -201,7 +201,7 @@ class docModel extends model */ public function createApiLib() { - /* replace doc library name */ + /* Replace doc library name. */ $this->lang->doclib->name = $this->lang->doclib->apiLibName; $data = fixer::input('post')