From 6360168976d653cc6edb95cf7e430dd31cfa712c Mon Sep 17 00:00:00 2001 From: wangyuting Date: Wed, 20 Dec 2023 19:28:53 +0800 Subject: [PATCH] * Adjust authorize unit test script. --- module/user/model.php | 2 +- module/user/test/model/authorize.php | 40 ++++++++++++---------- module/user/test/model/computeuserview.php | 10 +++--- module/user/test/model/grantuserview.php | 23 +++++++------ module/user/test/yaml/group.yaml | 4 +-- module/user/test/yaml/usergroup.yaml | 9 ++--- module/user/test/yaml/userview.yaml | 2 +- 7 files changed, 45 insertions(+), 45 deletions(-) diff --git a/module/user/model.php b/module/user/model.php index 005793033d..90b8f5053a 100644 --- a/module/user/model.php +++ b/module/user/model.php @@ -2039,7 +2039,7 @@ class userModel extends model if(empty($acls) && !empty($this->session->user->rights['acls'])) $acls = $this->session->user->rights['acls']; if(empty($projects) && !empty($this->session->user->rights['projects'])) $projects = $this->session->user->rights['projects']; - $userView = $this->computeUserView($account); + $userView = $this->computeUserView($account, true); /* Get opened projects, programs, products and set it to userview. */ $openedPrograms = $this->dao->select('id')->from(TABLE_PROJECT)->where('acl')->eq('open')->andWhere('type')->eq('program')->fetchAll('id'); diff --git a/module/user/test/model/authorize.php b/module/user/test/model/authorize.php index 333bea62fe..5fd8ede853 100755 --- a/module/user/test/model/authorize.php +++ b/module/user/test/model/authorize.php @@ -5,11 +5,10 @@ include dirname(__FILE__, 2) . '/user.class.php'; su('admin'); -$user = zdTable('user'); -$user->gen(20); - -$userGroup = zdTable('usergroup'); -$userGroup->gen(100); +zdTable('user')->gen(20); +zdTable('group')->config('group')->gen(100); +zdTable('usergroup')->config('usergroup')->gen(100); +zdTable('grouppriv')->config('grouppriv')->gen(100); /** @@ -17,22 +16,25 @@ title=测试 userModel->authorize(); cid=1 pid=1 -获取用户的权限,返回权限列表,是否有产品首页权限 >> 1 -获取游客的权限,返回权限列表,是否有任务详情的权限 >> 1 -获取不存在的用户的可访问项目,返回空 >> 0 -获取空的用户的权限,返回空 >> 0 +- 获取user2用户的访问权限。 + - 第rights[index]条的index属性 @1 + - 第rights[module3]条的method3属性 @1 +- 获取user2用户的可访问项目集、项目、产品。 + - 第acls[programs]条的0属性 @1 + - 第acls[programs]条的1属性 @6 +- 获取user2用户的可访问项目集、项目、产品。第acls[projects]条的0属性 @15 +- 获取user2用户的可访问项目集、项目、产品。第acls[products]条的0属性 @20 +- 获取user2用户的可访问视图。 + - 第acls[views]条的program属性 @program + - 第acls[views]条的product属性 @product + - 第acls[views]条的project属性 @project */ $user = new userTest(); -$normalUser = $user->authorizeTest('test10'); -r($normalUser['rights']) && p('product:index') && e('1'); //获取用户的权限,返回权限列表,是否有产品首页权限 - // -$guest = $user->authorizeTest('guest'); -r($guest['rights']) && p('task:view') && e('1'); //获取游客的权限,返回权限列表,是否有任务详情的权限 - -$notExistsUser = $user->authorizeTest('sadf!!@#a'); -r($notExistsUser['projects']) && p('') && e('0'); //获取不存在的用户的可访问项目,返回空 - -r($user->authorizeTest('')) && p('') && e('0'); //获取空的用户的权限,返回空 +r($user->authorizeTest('user2')) && p('rights[index]:index;rights[module3]:method3') && e('1,1'); // 获取user2用户的访问权限。 +r($user->authorizeTest('user2')) && p('acls[programs]:0,1') && e('1,6'); // 获取user2用户的可访问项目集、项目、产品。 +r($user->authorizeTest('user2')) && p('acls[projects]:0') && e('15'); // 获取user2用户的可访问项目集、项目、产品。 +r($user->authorizeTest('user2')) && p('acls[products]:0') && e('20'); // 获取user2用户的可访问项目集、项目、产品。 +r($user->authorizeTest('user2')) && p('acls[views]:program,product,project') && e('program,product,project'); // 获取user2用户的可访问视图。 diff --git a/module/user/test/model/computeuserview.php b/module/user/test/model/computeuserview.php index bbb9cc504f..044a9e227e 100755 --- a/module/user/test/model/computeuserview.php +++ b/module/user/test/model/computeuserview.php @@ -25,7 +25,7 @@ include dirname(__FILE__, 2) . '/user.class.php'; dao::$cache = array(); zdTable('user')->gen(10); -zdTable('userview')->gen(10); +zdTable('userview')->config('userview')->gen(10); zdTable('team')->config('team')->gen(200); zdTable('acl')->config('acl')->gen(100); zdTable('stakeholder')->config('stakeholder')->gen(100); @@ -37,10 +37,10 @@ zdTable('project')->config('execution')->gen(20, false); zdTable('projectadmin')->config('projectadmin')->gen(30); $user = new userTest(); -r($user->computeUserViewTest('test1', false)) && p('programs', '-') && e(',1'); //计算并获取test1账户的可查看项目集列表。 -r($user->computeUserViewTest('test1', false)) && p('products', '-') && e(',1'); //计算并获取test1账户的可查看产品列表。 -r($user->computeUserViewTest('test1', false)) && p('projects', '-') && e(',11'); //计算并获取test1账户的可查看项目列表。 -r($user->computeUserViewTest('test1', false)) && p('sprints', '-') && e(',101'); //计算并获取test1账户的可查看执行列表。 +r($user->computeUserViewTest('test1', false)) && p('programs', '-') && e(',3'); //计算并获取test1账户的可查看项目集列表。 +r($user->computeUserViewTest('test1', false)) && p('products', '-') && e(',3'); //计算并获取test1账户的可查看产品列表。 +r($user->computeUserViewTest('test1', false)) && p('projects', '-') && e(',13'); //计算并获取test1账户的可查看项目列表。 +r($user->computeUserViewTest('test1', false)) && p('sprints', '-') && e(',103'); //计算并获取test1账户的可查看执行列表。 r($user->computeUserViewTest('admin', true)) && p('programs', '-') && e('2,3,5,6,8,9'); //计算并获取admin账户的可查看项目集列表。 r($user->computeUserViewTest('admin', true)) && p('products', '-') && e('11,12,13,14,15,16,17,18,19,20'); //计算并获取admin账户的可查看产品列表。 r($user->computeUserViewTest('admin', true)) && p('projects', '-') && e('11,12,14,15,17,18,20'); //计算并获取admin账户的可查看项目列表。 diff --git a/module/user/test/model/grantuserview.php b/module/user/test/model/grantuserview.php index 7b0cb0ed05..a85d78bf78 100755 --- a/module/user/test/model/grantuserview.php +++ b/module/user/test/model/grantuserview.php @@ -18,11 +18,12 @@ pid=1 */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/user.class.php'; -su('admin'); dao::$cache = array(); -zdTable('user')->gen(20); -zdTable('usergroup')->gen(100); +zdTable('user')->gen(10); +zdTable('group')->config('group')->gen(100); +zdTable('usergroup')->config('usergroup')->gen(100); +zdTable('grouppriv')->config('grouppriv')->gen(100); zdTable('userview')->config('userview')->gen(10); zdTable('team')->config('team')->gen(200); zdTable('acl')->config('acl')->gen(100); @@ -35,11 +36,11 @@ zdTable('project')->config('execution')->gen(20, false); zdTable('projectadmin')->config('projectadmin')->gen(30); $user = new userTest(); -r($user->grantUserViewTest('admin')) && p('programs', '-') && e('1,1,4,7,10'); //获取admin账户最终可见的项目集列表 -r($user->grantUserViewTest('admin')) && p('products', '-') && e('1,1,2,3,4,5,6,7,8,9,10'); //获取admin账户最终可见的产品列表 -r($user->grantUserViewTest('admin')) && p('projects', '-') && e('11,13,16,19'); //获取admin账户最终可见的项目列表 -r($user->grantUserViewTest('admin')) && p('sprints' , '-') && e('101,101,103,109'); //获取admin账户最终可见的迭代列表 -r($user->grantUserViewTest('user2')) && p('programs', '-') && e('4,1,4,7,10'); //获取user2账户最终可见的项目集列表 -r($user->grantUserViewTest('user2')) && p('products', '-') && e('4,1,2,3,4,5,6,7,8,9,10'); //获取user2账户最终可见的产品列表 -r($user->grantUserViewTest('user2')) && p('projects', '-') && e('14,13,16,19'); //获取user2账户最终可见的项目列表 -r($user->grantUserViewTest('user2')) && p('sprints' , '-') && e('104,103,104,109'); //获取user2账户最终可见的迭代列表 +r($user->grantUserViewTest('admin')) && p('programs', '-') && e('2,3,5,6,8,9,1,4,7,10'); //获取admin账户最终可见的项目集列表 +r($user->grantUserViewTest('admin')) && p('products', '-') && e('11,12,13,14,15,16,17,18,19,20,1,2,3,4,5,6,7,8,9,10'); //获取admin账户最终可见的产品列表 +r($user->grantUserViewTest('admin')) && p('projects', '-') && e('11,12,14,15,17,18,20,13,16,19'); //获取admin账户最终可见的项目列表 +r($user->grantUserViewTest('admin')) && p('sprints' , '-') && e('105,106,107,108,113,114,115,116,101,102,103,104,109,110'); //获取admin账户最终可见的迭代列表 +r($user->grantUserViewTest('user2')) && p('programs', '-') && e('2,3,8,9,1,4,7,10'); //获取user2账户最终可见的项目集列表 +r($user->grantUserViewTest('user2')) && p('products', '-') && e('12,13,17,18,1,2,3,4,5,6,7,8,9,10'); //获取user2账户最终可见的产品列表 +r($user->grantUserViewTest('user2')) && p('projects', '-') && e('12,14,17,18,13,16,19'); //获取user2账户最终可见的项目列表 +r($user->grantUserViewTest('user2')) && p('sprints' , '-') && e('107,108,113,114,102,103,104,109'); //获取user2账户最终可见的迭代列表 diff --git a/module/user/test/yaml/group.yaml b/module/user/test/yaml/group.yaml index 02973858d9..d6c29dba8d 100644 --- a/module/user/test/yaml/group.yaml +++ b/module/user/test/yaml/group.yaml @@ -26,7 +26,7 @@ fields: format: "" - field: project note: "所属项目" - range: "0" + range: "0{100}, 1-100" - field: desc note: "分组描述" range: "1-10000" @@ -36,7 +36,7 @@ fields: format: "" - field: acl note: "权限" - range: "0" + range: '`{"views":{"program":"program","product":"product","project":"project"},"programs":{"0":"1","1":"6"},"products":{"0":"20"},"projects":{"0":"15"}}`' prefix: "" postfix: "" loop: 0 diff --git a/module/user/test/yaml/usergroup.yaml b/module/user/test/yaml/usergroup.yaml index 2beed6fda3..bb5cf89214 100644 --- a/module/user/test/yaml/usergroup.yaml +++ b/module/user/test/yaml/usergroup.yaml @@ -7,12 +7,9 @@ fields: note: "用户名" fields: - field: account1 - range: test{99},dev{100},pm,po{54},td{100},pd{47},qd{7},top{100},outside{92} + range: admin,user{5},test{10000} - field: account2 - range: 2-100,1-100,1,48-100,1-100,1-47,94-100,1-100,2-93 + range: '[],1-5,1-10000' - field: group note: "分组名称" - range: 3{100},2{200},4{10},5{10},6{2},7{2},8{2},9{5},1{8},12{10} - - field: project - note: "项目ID" - range: + range: 1-10000 diff --git a/module/user/test/yaml/userview.yaml b/module/user/test/yaml/userview.yaml index 09f15319f6..3756c626a6 100644 --- a/module/user/test/yaml/userview.yaml +++ b/module/user/test/yaml/userview.yaml @@ -7,7 +7,7 @@ fields: note: "用户名" fields: - field: account1 - range: admin,guest,user{100},test{100},dev{100},td{100},top{100} + range: admin,guest,test{100} - field: account2 range: "[],[],1-100,1-100,1-100,1-100" - field: programs