* Refactor project function checkPriv.

This commit is contained in:
chaideqing
2023-05-06 17:27:47 +08:00
parent f61522fa38
commit b4da961140
4 changed files with 46 additions and 4 deletions
+3 -4
View File
@@ -38,19 +38,18 @@ class projectModel extends model
}
/**
* 检查用户是否有查看项目的权限。
* Check the privilege.
*
* @param int $projectID
* @access public
* @return bool
*/
public function checkPriv($projectID)
public function checkPriv(int $projectID): bool
{
if(empty($projectID)) return false;
/* If is admin, return true. */
if($this->app->user->admin) return true;
return (strpos(",{$this->app->user->view->projects},", ",{$projectID},") !== false);
return $this->app->user->admin || str_contains(",{$this->app->user->view->projects},", ",{$projectID},");
}
/**
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
su('user1');
zdTable('project')->config('project')->gen(8);
zdTable('user')->config('user')->gen(2);
/**
title=测试 projectModel::checkPriv;
timeout=0
cid=1
- 执行project模块的checkPriv方法,参数是1 @1
- 执行project模块的checkPriv方法,参数是2 @0
- 执行project模块的checkPriv方法,参数是2 @1
*/
global $tester;
$tester->loadModel('project');
r($tester->project->checkPriv(1)) && p() && e('1');
r($tester->project->checkPriv(2)) && p() && e('0');
su('admin');
r($tester->project->checkPriv(2)) && p() && e('1');
@@ -0,0 +1,8 @@
title: checkpriv-1
author: chaideqing
version: "1.0"
fields:
- field: PM
range: 'admin'
- field: id
range: '1-8'
@@ -0,0 +1,6 @@
title: checkpriv-user
author: chaideqing
version: "1.0"
fields:
- field: account
range: 'admin,user1'