diff --git a/module/gitea/model.php b/module/gitea/model.php index 8962f0f899..feaaaa9f68 100644 --- a/module/gitea/model.php +++ b/module/gitea/model.php @@ -31,10 +31,10 @@ class giteaModel extends model public function getApiRoot(int $giteaID, bool $sudo = true): string { $gitea = $this->fetchByID($giteaID); - if(!$gitea) return ''; + if(!$gitea || $gitea->type != 'gitea') return ''; $sudoParam = ''; - if($sudo == true and !$this->app->user->admin) + if($sudo && !$this->app->user->admin) { $openID = $this->loadModel('pipeline')->getOpenIdByAccount($giteaID, 'gitea', $this->app->user->account); if($openID) $sudoParam = "&sudo={$openID}"; diff --git a/module/gitea/test/model/checktokenaccess.php b/module/gitea/test/model/checktokenaccess.php old mode 100644 new mode 100755 index b713653a41..a4065cb212 --- a/module/gitea/test/model/checktokenaccess.php +++ b/module/gitea/test/model/checktokenaccess.php @@ -1,37 +1,37 @@ #!/usr/bin/env php loadModel('gitea'); -$host = ''; -$token = ''; +$host = ''; +$token = ''; -$result = $gitea->checkTokenAccess($host, $token); -if($result === false) $result = 'return false'; -r($result) && p() && e('return false'); //使用空的数据验证token权限 +r($gitea->checkTokenAccess($host, $token)) && p() && e('0'); //使用空的数据验证token权限 -$host = 'http://10.0.7.242:9020'; -$result = $gitea->checkTokenAccess($host, $token); -if(!$result) $result = 'return false'; -r($result) && p() && e('return false'); //使用错误的host验证token权限 +$host = 'https://dev.qc.oop.cc'; +r($gitea->checkTokenAccess($host, $token)) && p() && e('0'); //使用错误的host验证token权限 -$host = 'http://10.0.7.242:9020'; -$result = $gitea->checkTokenAccess($host, $token); -if(empty($result)) $result = 'return null'; -r($result) && p() && e('return null'); //使用正确的host,错误的token验证token权限 +$host = 'https://giteadev.qc.oop.cc'; +r($gitea->checkTokenAccess($host, $token)) && p() && e('0'); //使用正确的host,错误的token验证token权限 -$token = 'c6769e6761a7d719129b2421dcb3112d936e2b1f'; -$result = $gitea->checkTokenAccess($host, $token); -r($result) && p() && e('1'); //通过host,token验证token权限 +$token = '6149a6013047301b116389d50db5cbf599772082'; +r($gitea->checkTokenAccess($host, $token)) && p() && e('1'); //通过host,token验证token权限 $token = 'wVFHE6NZA-cJy-3U2y2J'; $result = $gitea->checkTokenAccess($host, $token); diff --git a/module/gitea/test/model/getapiroot.php b/module/gitea/test/model/getapiroot.php new file mode 100755 index 0000000000..7b0f5f70cc --- /dev/null +++ b/module/gitea/test/model/getapiroot.php @@ -0,0 +1,37 @@ +#!/usr/bin/env php +gen(5); +zdTable('oauth')->config('oauth')->gen(1); +su('admin'); + +global $tester; +$gitea = $tester->loadModel('gitea'); + +$failID = 10; +$gitlabID = 1; +$giteaID = 4; + +r($gitea->getApiRoot($failID)) && p() && e('0'); // 不存在的服务器 +r($gitea->getApiRoot($gitlabID)) && p() && e('0'); // 错误的服务器 + +r($gitea->getApiRoot($giteaID, false)) && p() && e('https://giteadev.qc.oop.cc/api/v1%s?token=6149a6013047301b116389d50db5cbf599772082'); // 正确的服务器 +r($gitea->getApiRoot($giteaID)) && p() && e('https://giteadev.qc.oop.cc/api/v1%s?token=6149a6013047301b116389d50db5cbf599772082'); // 管理员获取接口地址 + +su('user1', false); +r($gitea->getApiRoot($giteaID)) && p() && e('https://giteadev.qc.oop.cc/api/v1%s?token=6149a6013047301b116389d50db5cbf599772082&sudo=5'); // 普通用户获取接口地址 \ No newline at end of file diff --git a/module/gitea/test/yaml/oauth.yaml b/module/gitea/test/yaml/oauth.yaml new file mode 100644 index 0000000000..8bc145fdd1 --- /dev/null +++ b/module/gitea/test/yaml/oauth.yaml @@ -0,0 +1,13 @@ +title: oauth +author: Yanyi Cao +version: "1.0" +fields: + - field: account + range: user1 + - field: openID + range: 5 + - field: providerType + range: gitea + - field: providerID + range: 4 +