diff --git a/test/class/user.class.php b/test/class/user.class.php index dc5da2b4bf..523ea0beab 100755 --- a/test/class/user.class.php +++ b/test/class/user.class.php @@ -710,4 +710,163 @@ class userTest if(dao::isError()) return dao::getError(); return $members; } + + /** + * Test get product members. + * + * @param string $account + * @param bool $force + * @access public + * @return void + */ + public function grantUserViewTest($account = '', $acls = array(), $projects = '') + { + $userView = $this->objectModel->grantUserView($account, $acls, $projects); + + if(dao::isError()) return dao::getError(); + return $userView; + } + + /** + * Test update program view. + * + * @param array $programIdList + * @param array $users + * @access public + * @return void + */ + public function updateProgramViewTest($programIdList = array(), $users = array()) + { + $this->objectModel->updateProgramView($programIdList, $users); + + if(dao::isError()) return dao::getError(); + return $this->objectModel->grantUserView(current($users)); + } + + /** + * Test check program priv. + * + * @param object $program + * @param string $account + * @param array $stakeholders + * @param array $whiteList + * @access public + * @return void + */ + public function checkProgramPrivTest($program, $account, $stakeholders, $whiteList) + { + return $this->objectModel->checkProgramPriv($program, $account, $stakeholders, $whiteList); + } + + /** + * Test check project priv. + * + * @param object $project + * @param string $account + * @param array $stakeholders + * @param array $teams + * @param array $whiteList + * @access public + * @return void + */ + public function checkProjectPrivTest($project, $account, $stakeholders, $teams, $whiteList) + { + return $this->objectModel->checkProjectPriv($project, $account, $stakeholders, $teams, $whiteList); + } + /** + * Test check sprint priv. + * + * @param object $sprint + * @param string $account + * @param array $stakeholders + * @param array $teams + * @param array $whiteList + * @access public + * @return void + */ + public function checkSprintPrivTest($sprint, $account, $stakeholders, $teams, $whiteList) + { + return $this->objectModel->checkSprintPriv($sprint, $account, $stakeholders, $teams, $whiteList); + } + /** + * Test check product priv. + * + * @param object $program + * @param string $account + * @param array $groups + * @param array $teams + * @param array $stakeholders + * @param array $whiteList + * @access public + * @return void + */ + public function checkProductPrivTest($product, $account, $groups, $teams, $stakeholders, $whiteList) + { + return $this->objectModel->checkProductPriv($product, $account, $groups, $teams, $stakeholders, $whiteList); + } + + /** + * Test get project authed users. + * + * @param int $projectID + * @param array $stakeholders + * @param array $teams + * @param array $whiteList + * @access public + * @return void + */ + public function getProjectAuthedUsersTest($projectID, $stakeholders, $teams, $whiteList) + { + global $tester; + $project = $tester->loadModel('project')->getByID($projectID); + return $this->objectModel->getProjectAuthedUsers($project, $stakeholders, $teams, $whiteList); + } + + /** + * Test get program authed users. + * + * @param int $projectID + * @param array $stakeholders + * @param array $whiteList + * @access public + * @return void + */ + public function getProgramAuthedUsersTest($programID, $stakeholders, $whiteList) + { + global $tester; + $program = $tester->loadModel('program')->getByID($programID); + return $this->objectModel->getProgramAuthedUsers($program, $stakeholders, $whiteList); + } + + /** + * Test get product view list users. + * + * @param int $productID + * @param array $teams + * @param array $stakeholders + * @param array $whiteList + * @access public + * @return void + */ + public function getProductViewListUsersTest($productID, $teams, $stakeholders, $whiteList) + { + global $tester; + $product = $tester->loadModel('product')->getByID($productID); + return $this->objectModel->getProductViewListUsers($product, $teams, $stakeholders, $whiteList); + } + + /** + * Test get product view list users. + * + * @param int $productID + * @param string $type + * @param string $params + * @param array $usersToAppended + * @access public + * @return void + */ + public function getTeamMemberPairsTest($objectID, $type, $params, $usersToAppended) + { + return $this->objectModel->getTeamMemberPairs($objectID, $type, $params, $usersToAppended); + } } diff --git a/test/model/user/checkproductpriv.php b/test/model/user/checkproductpriv.php new file mode 100755 index 0000000000..55406d1411 --- /dev/null +++ b/test/model/user/checkproductpriv.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +checkProductPrivTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$product = new stdclass(); +$product->id = 1; +$product->name = '测试产品'; +$product->PO = 'test2'; +$product->openedBy = 'pm1'; + +$stakeholders['user10'] = 'user10'; +$whiteList['user60'] = 'user60'; + +r($user->checkProductPrivTest('', 'admin')) && p() && e('1'); //传入admin,判断admin用户是否有权限 +r($user->checkProductPrivTest($product, 'test3')) && p() && e('0'); //传入产品、用户名,判断test3用户是否对此产品有权限 +r($user->checkProductPrivTest($product, 'test2')) && p() && e('1'); //传入产品、用户名,判断test2用户是否对此产品有权限 +r($user->checkProductPrivTest($product, 'user10', array(), array(), $stakeholders)) && p() && e('1'); //传入产品、用户名、干系人、白名单,判断user10用户是否对此产品有权限 +r($user->checkProductPrivTest($product, 'user60', array(), array(), $stakeholders, array(), $whiteList)) && p() && e('1'); //传入产品、用户名、干系人、白名单,判断user60用户是否对此产品有权限 diff --git a/test/model/user/checkprogrampriv.php b/test/model/user/checkprogrampriv.php new file mode 100755 index 0000000000..24c4bff585 --- /dev/null +++ b/test/model/user/checkprogrampriv.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +checkProgramPrivTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$program = new stdclass(); +$program->id = 1; +$program->name = '测试项目集'; +$program->PM = 'test2'; +$program->openedBy = 'pm1'; + +$stakeholders['user10'] = 'user10'; +$whiteList['user60'] = 'user60'; + +r($user->checkProgramPrivTest('', 'admin')) && p() && e('1'); //传入admin,判断admin用户是否有权限 +r($user->checkProgramPrivTest($program, 'test3')) && p() && e('0'); //传入项目集、用户名,判断test3用户是否对此项目集有权限 +r($user->checkProgramPrivTest($program, 'test2')) && p() && e('1'); //传入项目集、用户名,判断test2用户是否对此项目集有权限 +r($user->checkProgramPrivTest($program, 'user10', $stakeholders, array())) && p() && e('1'); //传入项目集、用户名、干系人、白名单,判断user10用户是否对此项目集有权限 +r($user->checkProgramPrivTest($program, 'user60', $stakeholders, $whiteList)) && p() && e('1'); //传入项目集、用户名、干系人、白名单,判断user60用户是否对此项目集有权限 diff --git a/test/model/user/checkprojectpriv.php b/test/model/user/checkprojectpriv.php new file mode 100755 index 0000000000..ec85d9892e --- /dev/null +++ b/test/model/user/checkprojectpriv.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +checkProjectPrivTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$project = new stdclass(); +$project->id = 10; +$project->name = '测试项目'; +$project->PM = 'test2'; +$project->openedBy = 'pm1'; + +$stakeholders['user10'] = 'user10'; +$whiteList['user60'] = 'user60'; + +r($user->checkProjectPrivTest('', 'admin')) && p() && e('1'); //传入admin,判断admin用户是否有权限 +r($user->checkProjectPrivTest($project, 'test3')) && p() && e('0'); //传入项目、用户名,判断test3用户是否对此项目有权限 +r($user->checkProjectPrivTest($project, 'test2')) && p() && e('1'); //传入项目、用户名,判断test2用户是否对此项目有权限 +r($user->checkProjectPrivTest($project, 'user10', $stakeholders, array(), array())) && p() && e('1'); //传入项目、用户名、干系人、白名单,判断user10用户是否对此项目有权限 +r($user->checkProjectPrivTest($project, 'user60', $stakeholders, array(), $whiteList)) && p() && e('1'); //传入项目、用户名、干系人、白名单,判断user60用户是否对此项目有权限 diff --git a/test/model/user/checksprintpriv.php b/test/model/user/checksprintpriv.php new file mode 100755 index 0000000000..d033a09585 --- /dev/null +++ b/test/model/user/checksprintpriv.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +checkSprintPrivTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$sprint = new stdclass(); +$sprint->id = 1; +$sprint->name = '测试项目集'; +$sprint->PM = 'test2'; +$sprint->openedBy = 'pm1'; + +$stakeholders['user10'] = 'user10'; +$whiteList['user60'] = 'user60'; + +r($user->checkSprintPrivTest('', 'admin')) && p() && e('1'); //传入admin,判断admin用户是否有权限 +r($user->checkSprintPrivTest($sprint, 'test3')) && p() && e('0'); //传入执行、用户名,判断test3用户是否对此执行有权限 +r($user->checkSprintPrivTest($sprint, 'test2')) && p() && e('1'); //传入执行、用户名,判断test2用户是否对此执行有权限 +r($user->checkSprintPrivTest($sprint, 'user10', $stakeholders, array(), array())) && p() && e('1'); //传入执行、用户名、干系人、白名单,判断user10用户是否对此执行有权限 +r($user->checkSprintPrivTest($sprint, 'user60', $stakeholders, array(), $whiteList)) && p() && e('1'); //传入执行、用户名、干系人、白名单,判断user60用户是否对此执行有权限 diff --git a/test/model/user/computeuserview.php b/test/model/user/computeuserview.php index 728e2c77ae..e2c3dd3133 100755 --- a/test/model/user/computeuserview.php +++ b/test/model/user/computeuserview.php @@ -19,13 +19,19 @@ pid=1 $user = new userTest(); -$adminViews = $user->computeUserViewTest('admin', true); -$adminProjects = substr($adminViews->projects, 0, 5); +$adminViews = $user->computeUserViewTest('admin'); +$adminPrograms = substr($adminViews->programs, 0, 5); $adminProducts = substr($adminViews->products, 0, 5); -r($adminProjects) && p() && e(',1,3,'); //获取admin账户可见的前两个项目ID -r($adminProducts) && p() && e(',1,2,'); //获取admin账户可见的前两个产品ID -r($user->computeUserViewTest('user10')) && p('products') && e('99'); //获取user10账户可见的产品ID -r($user->computeUserViewTest('test2')) && p('projects') && e(''); //获取test2账户可见的项目ID -r($user->computeUserViewTest(null)) && p('account') && e('admin'); //用户名传null,则获取当前登录账户的views -system("./ztest init"); \ No newline at end of file +$computedAdminViews = $user->computeUserViewTest('admin', true); +$computedAdminPrograms = substr($computedAdminViews->programs, 0, 3); +$computedAdminProducts = substr($computedAdminViews->products, 0, 5); + +r($adminPrograms) && p() && e(',1,2,'); //获取强制计算前admin账户可见的前两个项目集ID +r($adminProducts) && p() && e(',1,2,'); //获取强制计算前admin账户可见的前两个产品ID +r($computedAdminPrograms) && p() && e('5,6'); //获取强制计算前admin账户可见的前两个项目集ID +r($computedAdminProducts) && p() && e(',11,12,'); //获取强制计算前admin账户可见的前两个产品ID +r($user->computeUserViewTest('user10')) && p('products') && e('99'); //获取user10账户可见的产品ID +r($user->computeUserViewTest('test2')) && p('projects') && e(',12'); //获取test2账户可见的项目ID +r($user->computeUserViewTest(null)) && p('account') && e('admin'); //用户名传null,则获取当前登录账户的views +system("./ztest init"); diff --git a/test/model/user/getproductviewlistusers.php b/test/model/user/getproductviewlistusers.php new file mode 100755 index 0000000000..4fcf559135 --- /dev/null +++ b/test/model/user/getproductviewlistusers.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +getProductViewListUsersTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$stakeholders['test9'] = 'test9'; +$stakeholders['test10'] = 'test10'; + +$teams['pm7'] = 'pm7'; +$teams['pm8'] = 'pm8'; + +$whiteList['user35'] = 'user35'; +$whiteList['user35'] = 'user35'; +$whiteList['astaw'] = 'astaw'; + +r(count($user->getProductViewListUsersTest(1, $stakeholders, $teams, $whiteList))) && p() && e('11'); //获取对ID为1的产品有权限的用户 +r($user->getProductViewListUsersTest(1, $stakeholders, $teams, $whiteList)) && p('test9') && e('test9'); //获取对ID为1的产品有权限的用户 +r($user->getProductViewListUsersTest(1, $stakeholders, $teams, $whiteList)) && p('admin') && e('admin'); //获取对ID为1的产品有权限的用户 +r($user->getProductViewListUsersTest(2, $stakeholders, $teams, $whiteList)) && p('astaw') && e('astaw'); //获取对ID为2的产品有权限的用户 diff --git a/test/model/user/getprogramauthedusers.php b/test/model/user/getprogramauthedusers.php new file mode 100755 index 0000000000..f3cb11f1f5 --- /dev/null +++ b/test/model/user/getprogramauthedusers.php @@ -0,0 +1,26 @@ +#!/usr/bin/env php +getProgramAuthedUsersTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$stakeholders['test9'] = 'test9'; +$stakeholders['test10'] = 'test10'; + +$whiteList['user35'] = 'user35'; +$whiteList['user35'] = 'user35'; +$whiteList['astaw'] = 'astaw'; + +r(count($user->getProgramAuthedUsersTest(1, $stakeholders, $whiteList))) && p() && e('6'); //获取对ID为1的项目集有权限的用户数量 +r($user->getProgramAuthedUsersTest(1, $stakeholders, $whiteList)) && p('test9') && e('test9'); //获取对ID为1的项目集有权限的用户 +r($user->getProgramAuthedUsersTest(1, $stakeholders, $whiteList)) && p('admin') && e('admin'); //获取对ID为1的项目集有权限的用户 +r($user->getProgramAuthedUsersTest(2, $stakeholders, $whiteList)) && p('astaw') && e('astaw'); //获取对ID为2的项目集有权限的用户 diff --git a/test/model/user/getprojectauthedusers.php b/test/model/user/getprojectauthedusers.php new file mode 100755 index 0000000000..630da656c5 --- /dev/null +++ b/test/model/user/getprojectauthedusers.php @@ -0,0 +1,28 @@ +#!/usr/bin/env php +getProjectAuthedUsersTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$stakeholders['test9'] = 'test9'; +$stakeholders['test10'] = 'test10'; + +$teams['pm7'] = 'pm7'; +$teams['pm8'] = 'pm8'; + +$whiteList['user35'] = 'user35'; +$whiteList['user35'] = 'user35'; +$whiteList['astaw'] = 'astaw'; + +r($user->getProjectAuthedUsersTest(1, $stakeholders, $teams, $whiteList)) && p('test9') && e('test9'); //获取对ID为1的产品有权限的用户 +r($user->getProjectAuthedUsersTest(1, $stakeholders, $teams, $whiteList)) && p('admin') && e('admin'); //获取对ID为1的产品有权限的用户 +r($user->getProjectAuthedUsersTest(2, $stakeholders, $teams, $whiteList)) && p('astaw') && e('astaw'); //获取对ID为2的产品有权限的用户 diff --git a/test/model/user/getteammemberpairstest.php b/test/model/user/getteammemberpairstest.php new file mode 100755 index 0000000000..07276220ad --- /dev/null +++ b/test/model/user/getteammemberpairstest.php @@ -0,0 +1,19 @@ +#!/usr/bin/env php +getTeamMemberPairsTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); + +r(count($user->getTeamMemberPairsTest(11, 'project'))) && p() && e('3'); //获取ID为11的项目的团队成员数量 +r(count($user->getTeamMemberPairsTest(11, 'project', '', array('test2')))) && p() && e('4'); //获取ID为11的项目的团队成员数量,追加用户test2 +r($user->getTeamMemberPairsTest(110, 'execution')) && p('test1') && e('T:测试1'); //获取ID为110的执行的团队成员成员 diff --git a/test/model/user/grantuserviewtest.php b/test/model/user/grantuserviewtest.php new file mode 100755 index 0000000000..f68662a615 --- /dev/null +++ b/test/model/user/grantuserviewtest.php @@ -0,0 +1,32 @@ +#!/usr/bin/env php +grantUserViewTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); + +$adminViews = $user->grantUserViewTest('admin'); +$test2Views = $user->grantUserViewTest('test2'); +$user10Views = $user->grantUserViewTest('user10'); +$nullViews = $user->grantUserViewTest(null); + +$adminProjects = substr($adminViews->projects, 0, 5); +$adminProducts = substr($adminViews->products, 0, 5); +$test2Projects = substr($test2Views->projects, 0, 5); +$user10Projects = substr($user10Views->projects, 0, 5); + +r($adminProjects) && p() && e('12,13'); //获取admin账户可见的前两个项目的ID +r($adminProducts) && p() && e('11,12'); //获取admin账户可见的前两个产品的ID +r($test2Projects) && p() && e('12,11'); //获取test2账户可见的前两个项目的ID +r($user10Projects) && p() && e('19,11'); //获取user10账户可见的前两个项目的ID +r($nullViews) && p() && e(''); //获取null账户可见的项目、产品等 +system("./ztest init"); diff --git a/test/model/user/updateprogramview.php b/test/model/user/updateprogramview.php new file mode 100755 index 0000000000..4298b7071e --- /dev/null +++ b/test/model/user/updateprogramview.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php +updateProgramViewTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); + +$programIdList = array('1', '2'); +a($user->grantUserViewTest('user10')); +a($user->updateProgramViewTest('', array('user10'))); +die; + +r() && p() && e(''); // +system("./ztest init");