* Add projectstory module permissions.

This commit is contained in:
leiyong
2020-11-26 17:52:30 +08:00
parent f7df060870
commit 1a70a9f311
3 changed files with 83 additions and 50 deletions
+59 -48
View File
@@ -15,63 +15,64 @@ $lang->moduleOrder[0] = 'index';
$lang->moduleOrder[5] = 'my';
$lang->moduleOrder[10] = 'todo';
$lang->moduleOrder[11] = 'program';
$lang->moduleOrder[12] = 'personnel';
$lang->moduleOrder[15] = 'product';
$lang->moduleOrder[20] = 'story';
$lang->moduleOrder[25] = 'productplan';
$lang->moduleOrder[30] = 'release';
$lang->moduleOrder[15] = 'program';
$lang->moduleOrder[20] = 'personnel';
$lang->moduleOrder[25] = 'product';
$lang->moduleOrder[30] = 'story';
$lang->moduleOrder[35] = 'productplan';
$lang->moduleOrder[40] = 'release';
$lang->moduleOrder[45] = 'projectstory';
$lang->moduleOrder[35] = 'project';
$lang->moduleOrder[40] = 'task';
$lang->moduleOrder[45] = 'build';
$lang->moduleOrder[50] = 'project';
$lang->moduleOrder[55] = 'task';
$lang->moduleOrder[60] = 'build';
$lang->moduleOrder[50] = 'qa';
$lang->moduleOrder[55] = 'bug';
$lang->moduleOrder[60] = 'testcase';
$lang->moduleOrder[65] = 'testtask';
$lang->moduleOrder[70] = 'testsuite';
$lang->moduleOrder[75] = 'testreport';
$lang->moduleOrder[80] = 'caselib';
$lang->moduleOrder[65] = 'qa';
$lang->moduleOrder[70] = 'bug';
$lang->moduleOrder[75] = 'testcase';
$lang->moduleOrder[80] = 'testtask';
$lang->moduleOrder[85] = 'testsuite';
$lang->moduleOrder[90] = 'testreport';
$lang->moduleOrder[95] = 'caselib';
$lang->moduleOrder[85] = 'doc';
$lang->moduleOrder[90] = 'report';
$lang->moduleOrder[100] = 'doc';
$lang->moduleOrder[105] = 'report';
$lang->moduleOrder[95] = 'company';
$lang->moduleOrder[100] = 'dept';
$lang->moduleOrder[105] = 'group';
$lang->moduleOrder[110] = 'user';
$lang->moduleOrder[110] = 'company';
$lang->moduleOrder[115] = 'dept';
$lang->moduleOrder[120] = 'group';
$lang->moduleOrder[125] = 'user';
$lang->moduleOrder[115] = 'admin';
$lang->moduleOrder[120] = 'extension';
$lang->moduleOrder[125] = 'custom';
$lang->moduleOrder[140] = 'action';
$lang->moduleOrder[130] = 'admin';
$lang->moduleOrder[135] = 'extension';
$lang->moduleOrder[140] = 'custom';
$lang->moduleOrder[145] = 'action';
$lang->moduleOrder[145] = 'mail';
$lang->moduleOrder[150] = 'svn';
$lang->moduleOrder[155] = 'git';
$lang->moduleOrder[160] = 'search';
$lang->moduleOrder[165] = 'tree';
$lang->moduleOrder[170] = 'api';
$lang->moduleOrder[175] = 'file';
$lang->moduleOrder[180] = 'misc';
$lang->moduleOrder[185] = 'backup';
$lang->moduleOrder[190] = 'cron';
$lang->moduleOrder[195] = 'dev';
$lang->moduleOrder[200] = 'message';
$lang->moduleOrder[150] = 'mail';
$lang->moduleOrder[155] = 'svn';
$lang->moduleOrder[160] = 'git';
$lang->moduleOrder[165] = 'search';
$lang->moduleOrder[170] = 'tree';
$lang->moduleOrder[175] = 'api';
$lang->moduleOrder[180] = 'file';
$lang->moduleOrder[185] = 'misc';
$lang->moduleOrder[190] = 'backup';
$lang->moduleOrder[195] = 'cron';
$lang->moduleOrder[200] = 'dev';
$lang->moduleOrder[205] = 'message';
$lang->moduleOrder[205] = 'design';
$lang->moduleOrder[210] = 'programplan';
$lang->moduleOrder[215] = 'issue';
$lang->moduleOrder[220] = 'risk';
$lang->moduleOrder[225] = 'stage';
$lang->moduleOrder[210] = 'design';
$lang->moduleOrder[215] = 'programplan';
$lang->moduleOrder[220] = 'issue';
$lang->moduleOrder[225] = 'risk';
$lang->moduleOrder[230] = 'stage';
$lang->moduleOrder[230] = 'budget';
$lang->moduleOrder[235] = 'workestimation';
$lang->moduleOrder[240] = 'durationestimation';
$lang->moduleOrder[235] = 'budget';
$lang->moduleOrder[240] = 'workestimation';
$lang->moduleOrder[245] = 'durationestimation';
$lang->moduleOrder[245] = 'subject';
$lang->moduleOrder[250] = 'holiday';
$lang->moduleOrder[250] = 'subject';
$lang->moduleOrder[255] = 'holiday';
$lang->resource = new stdclass();
@@ -480,6 +481,16 @@ $lang->productplan->methodOrder[50] = 'unlinkBug';
$lang->productplan->methodOrder[55] = 'batchUnlinkBug';
$lang->productplan->methodOrder[60] = 'batchEdit';
/* Project Story. */
$lang->resource->projectstory = new stdclass();
$lang->resource->projectstory->requirement = 'requirement';
$lang->resource->projectstory->story = 'story';
$lang->resource->projectstory->track = 'track';
$lang->productplan->methodOrder[5] = 'requirement';
$lang->productplan->methodOrder[10] = 'story';
$lang->productplan->methodOrder[15] = 'track';
/* Release. */
$lang->resource->release = new stdclass();
$lang->resource->release->browse = 'browse';
+4
View File
@@ -1,2 +1,6 @@
<?php
$lang->projectstory->common = '项目需求';
$lang->projectstory->index = '需求主页';
$lang->projectstory->requirement = '用户需求';
$lang->projectstory->story = '软件需求';
$lang->projectstory->track = '跟踪矩阵';
+20 -2
View File
@@ -1135,6 +1135,18 @@ class userModel extends model
return $this->dao->select('id, listName')->from(TABLE_USERCONTACT)->where('account')->eq($account)->fetchPairs();
}
/**
* Get users who have access to the parent stage.
*
* @param int $stageID
* @access public
* @return object
*/
public function getParentStageAuthedUsers($stageID = 0)
{
return $this->dao->select('account')->from(TABLE_USERVIEW)->where("CONCAT(',', sprints, ',')")->like("%,{$stageID},%")->fetchPairs();
}
/**
* Get a contact list by id.
*
@@ -1652,8 +1664,7 @@ class userModel extends model
->where('acl')->eq('open')
->andWhere('type')
->in('sprint,stage')
->andWhere('project')
->in($userView->projects)
->andWhere('project')->in($userView->projects)
->fetchAll('id');
$openedSprints = join(',', array_keys($openedSprints));
@@ -1978,6 +1989,13 @@ class userModel extends model
$whiteList = zget($whiteListGroup, $sprint->project, array());
$authedUsers += $this->getSprintAuthedUsers($sprint, $stakeholders, array_merge($teams, $parentTeams), $whiteList);
/* If you have parent stage view permissions, you have child stage permissions. */
if($sprint->type == 'stage' && $sprint->grade == 2)
{
$parentStageAuthedUsers = $this->getParentStageAuthedUsers($sprint->parent);
$authedUsers = array_merge($authedUsers, $parentStageAuthedUsers);
}
}
}