diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 45f3912b4c..1463d3c9bf 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -76,7 +76,7 @@ class gitlabModel extends model public function getApiRoot(int $gitlabID, bool $sudo = true): string { $gitlab = $this->getByID($gitlabID); - if(!$gitlab) return ''; + if(!$gitlab || $gitlab->type != 'gitlab') return ''; $sudoParam = ''; if($sudo == true && !$this->app->user->admin) diff --git a/module/gitlab/test/model/getapiroot.php b/module/gitlab/test/model/getapiroot.php new file mode 100755 index 0000000000..8ed7e6be0d --- /dev/null +++ b/module/gitlab/test/model/getapiroot.php @@ -0,0 +1,37 @@ +#!/usr/bin/env php +gen(5); +zdTable('oauth')->config('oauth')->gen(1); +su('admin'); + +global $tester; +$gitlab = $tester->loadModel('gitlab'); + +$failID = 10; +$gitlabID = 1; +$giteaID = 4; + +r($gitlab->getApiRoot($failID)) && p() && e('0'); // 不存在的服务器 +r($gitlab->getApiRoot($giteaID)) && p() && e('0'); // 错误的服务器 + +r($gitlab->getApiRoot($gitlabID, false)) && p() && e('https://gitlabdev.qc.oop.cc/api/v4%s?private_token=glpat-b8Sa1pM9k9ygxMZYPN6w'); // 正确的服务器 +r($gitlab->getApiRoot($gitlabID)) && p() && e('https://gitlabdev.qc.oop.cc/api/v4%s?private_token=glpat-b8Sa1pM9k9ygxMZYPN6w'); // 管理员获取接口地址 + +su('user3', false); +r($gitlab->getApiRoot($gitlabID)) && p() && e('https://gitlabdev.qc.oop.cc/api/v4%s?private_token=glpat-b8Sa1pM9k9ygxMZYPN6w&sudo=1'); // 普通用户获取接口地址 \ No newline at end of file