diff --git a/module/gitea/model.php b/module/gitea/model.php index af8b5c8bee..ad6c170348 100644 --- a/module/gitea/model.php +++ b/module/gitea/model.php @@ -258,7 +258,8 @@ class giteaModel extends model for($page = 1; true; $page++) { $results = json_decode(commonModel::http($url . "&page={$page}&limit=50")); - if(empty($results)) break; + if(empty($results) || isset($results->message)) break; + $allResults = array_merge($allResults, $results); if(count($results) < 50) break; } diff --git a/module/gitea/test/model/apigetgroups.php b/module/gitea/test/model/apigetgroups.php new file mode 100755 index 0000000000..515820f85f --- /dev/null +++ b/module/gitea/test/model/apigetgroups.php @@ -0,0 +1,51 @@ +#!/usr/bin/env php +gen(5); +zdTable('oauth')->config('oauth')->gen(5); +su('admin'); + +global $tester; +$giteaModel = $tester->loadModel('gitea'); + +$giteaID = 1; +r($giteaModel->apiGetGroups($giteaID)) && p() && e('0'); // 错误的服务器ID + +$giteaID = 4; +r($giteaModel->apiGetGroups($giteaID)) && p('0:name;1:name') && e('org1,org_public'); // 管理员账号模拟用户权限查询 +r($giteaModel->apiGetGroups($giteaID, false)) && p('0:name;1:name') && e('org1,org_public'); // 管理员账号不模拟用户权限查询 + +su('user1'); +r($giteaModel->apiGetGroups($giteaID)) && p() && e('0'); // 没有权限的用户模拟用户权限查询 +r($giteaModel->apiGetGroups($giteaID, false)) && p('0:name;1:name') && e('org1,org_public'); // 没有权限的用户不模拟用户权限查询 + +su('user2'); +r($giteaModel->apiGetGroups($giteaID)) && p('0:name;1:name') && e('org1,org_public'); // 有权限的账号模拟用户权限查询 +r($giteaModel->apiGetGroups($giteaID, false)) && p('0:name;1:name') && e('org1,org_public'); // 有权限的账号不模拟用户权限查询 \ No newline at end of file