* Refactor project function checkPriv.
This commit is contained in:
@@ -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},");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Executable
+29
@@ -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'
|
||||
Reference in New Issue
Block a user