diff --git a/module/common/model.php b/module/common/model.php index 1cb10e85df..4c356b6b87 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -1639,11 +1639,11 @@ EOD; if(!defined('IN_UPGRADE')) $this->session->user->view = $this->loadModel('user')->grantUserView(); $this->app->user = $this->session->user; - $inProgram = isset($this->lang->navGroup->$module) && $this->lang->navGroup->$module == 'program'; + $inProgram = isset($this->lang->navGroup->$module) && $this->lang->navGroup->$module == 'project'; if(!defined('IN_UPGRADE') and $inProgram) { /* Check program priv. */ - if(strpos(",{$this->app->user->view->programs},", ",{$this->session->PRJ},") === false and !$this->app->user->admin) $this->loadModel('program')->accessDenied(); + if(strpos(",{$this->app->user->view->projects},", ",{$this->session->PRJ},") === false and !$this->app->user->admin) $this->loadModel('program')->accessDenied(); $this->resetProgramPriv($module, $method); if(!commonModel::hasPriv($module, $method)) $this->deny($module, $method, false); } diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 74d0e12236..fad663476a 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -16,6 +16,7 @@ $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'; @@ -172,17 +173,17 @@ $lang->resource->program->PGMDelete = 'PGMDelete'; $lang->resource->program->PGMManageMembers = 'PGMManageMembers'; $lang->resource->program->PGMProject = 'PGMProject'; $lang->resource->program->export = 'export'; -$lang->resource->program->index = 'PRJIndex'; -$lang->resource->program->PRJBrowse = 'PRJBrowse'; -$lang->resource->program->PRJProgramTitle = 'PRJModuleOpen'; +$lang->resource->program->index = 'PRJIndex'; +$lang->resource->program->PRJBrowse = 'PRJBrowse'; +$lang->resource->program->PRJProgramTitle = 'PRJModuleOpen'; $lang->resource->program->PRJCreate = 'PRJCreate'; $lang->resource->program->PRJEdit = 'PRJEdit'; $lang->resource->program->PRJGroup = 'PRJGroup'; $lang->resource->program->PRJCreateGroup = 'PRJCreateGroup'; -$lang->resource->program->PRJManageView = 'PRJManageView'; -$lang->resource->program->PRJManagePriv = 'PRJManagePriv'; -$lang->resource->program->PRJManageMembers = 'PRJManageMembers'; -$lang->resource->program->PRJManageGroupMember = 'PRJManageGroupMember'; +$lang->resource->program->PRJManageView = 'PRJManageView'; +$lang->resource->program->PRJManagePriv = 'PRJManagePriv'; +$lang->resource->program->PRJManageMembers = 'PRJManageMembers'; +$lang->resource->program->PRJManageGroupMember = 'PRJManageGroupMember'; $lang->resource->program->PRJCopyGroup = 'PRJCopyGroup'; $lang->resource->program->PRJEditGroup = 'PRJEditGroup'; $lang->resource->program->PRJStart = 'PRJStart'; @@ -204,17 +205,17 @@ $lang->program->methodOrder[45] = 'PGMDelete'; $lang->program->methodOrder[85] = 'PGMManageMembers'; $lang->program->methodOrder[90] = 'PGMProject'; $lang->program->methodOrder[95] = 'export'; -$lang->program->methodOrder[100] = 'PRJIndex'; -$lang->program->methodOrder[105] = 'PRJBrowse'; +$lang->program->methodOrder[100] = 'PRJIndex'; +$lang->program->methodOrder[105] = 'PRJBrowse'; $lang->program->methodOrder[110] = 'PRJProgramTitle'; -$lang->program->methodOrder[115] = 'PRJCreate'; +$lang->program->methodOrder[115] = 'PRJCreate'; $lang->program->methodOrder[120] = 'PRJEdit'; $lang->program->methodOrder[125] = 'PRJGroup'; $lang->program->methodOrder[130] = 'PRJCreateGroup'; -$lang->program->methodOrder[135] = 'PRJManageView'; -$lang->program->methodOrder[140] = 'PRJManagePriv'; -$lang->program->methodOrder[145] = 'PRJManageMembers'; -$lang->program->methodOrder[150] = 'PRJManageGroupMember'; +$lang->program->methodOrder[135] = 'PRJManageView'; +$lang->program->methodOrder[140] = 'PRJManagePriv'; +$lang->program->methodOrder[145] = 'PRJManageMembers'; +$lang->program->methodOrder[150] = 'PRJManageGroupMember'; $lang->program->methodOrder[155] = 'PRJCopyGroup'; $lang->program->methodOrder[160] = 'PRJEditGroup'; $lang->program->methodOrder[165] = 'PRJStart'; @@ -224,6 +225,14 @@ $lang->program->methodOrder[180] = 'PRJActivate'; $lang->program->methodOrder[185] = 'PRJUpdateOrder'; $lang->program->methodOrder[190] = 'PRJDelete'; +/* Personnel . */ +$lang->resource->personnel = new stdclass(); +$lang->resource->personnel->accessible = 'accessible'; +$lang->resource->personnel->putInto = 'putInto'; + +$lang->personnel->methodOrder[5] = 'accessible'; +$lang->personnel->methodOrder[10] = 'putInto'; + /* Issue . */ $lang->resource->issue = new stdclass(); $lang->resource->issue->browse = 'browse'; diff --git a/module/personnel/lang/zh-cn.php b/module/personnel/lang/zh-cn.php index 347714f2d2..951a99a9ee 100644 --- a/module/personnel/lang/zh-cn.php +++ b/module/personnel/lang/zh-cn.php @@ -1,4 +1,5 @@ personnel->common = '人员'; $lang->personnel->accessible = '可访问人员列表'; $lang->personnel->putInto = '投入人员列表'; $lang->personnel->department = '部门'; diff --git a/module/personnel/model.php b/module/personnel/model.php index 08f5ac265a..513ed82bc6 100644 --- a/module/personnel/model.php +++ b/module/personnel/model.php @@ -70,6 +70,7 @@ class personnelModel extends model ->beginIF($browseType == 'scrum')->andWhere('model')->eq('scrum')->fi() ->beginIF($browseType == 'waterfall')->andWhere('model')->eq('waterfall')->fi() ->beginIF($browseType == 'parent')->andWhere('parent')->eq($programID)->fi() + ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi() ->andWhere('deleted')->eq('0') ->orderBy($orderBy) ->fetchAll('id'); @@ -84,7 +85,7 @@ class personnelModel extends model $personnelList['objectRows'] = $sprintAndStage['objectRows']; /* Get the program name for each level. */ - $programNameList = $this->getProgramPairs(); + $programNameList = $this->loadModel('program')->getPGMPairs(); foreach($personnelList['projects'] as $id => $project) { $path = explode(',', $project->path); @@ -103,7 +104,7 @@ class personnelModel extends model } /** - * Get team members for projects, stage, sprints. + * Access to data on stages and sprints. * * @param object $projects * @access public @@ -112,9 +113,11 @@ class personnelModel extends model public function getSprintAndStage($projects) { /* Get all sprints and iterations under the project. */ + $userViewID = array_merge(array(0), explode(',', $this->app->user->view->stages), explode(',', $this->app->user->view->sprints)); $projectKeys = array_keys($projects); $projectObjet = $this->dao->select('id,project,model,type,parent,path,grade,name')->from(TABLE_PROJECT) ->where('project')->in($projectKeys) + ->beginIF(!$this->app->user->admin)->andWhere('id')->in($userViewID)->fi() ->andWhere('deleted')->eq('0') ->orderBy('id_desc') ->fetchAll(); @@ -177,17 +180,6 @@ class personnelModel extends model return array('sprintAndStage' => $sprintAndStage, 'childrenStage' => $childrenStage, 'teams' => $teams, 'objectRows' => $objectRows); } - /** - * Get all program set names. - * - * @access public - * @return object - */ - public function getProgramPairs() - { - return $this->dao->select('id,name')->from(TABLE_PROJECT)->where('type')->eq('program')->andWhere('deleted')->eq('0')->fetchPairs('id', 'name'); - } - /** * Get the treemenu of departments. * diff --git a/module/program/lang/de.php b/module/program/lang/de.php index c46f1fd0c1..7cf8d97d8f 100644 --- a/module/program/lang/de.php +++ b/module/program/lang/de.php @@ -96,12 +96,12 @@ $lang->program->featureBar['wait'] = 'Waiting'; $lang->program->featureBar['suspended'] = 'Suspended'; $lang->program->featureBar['closed'] = 'Closed'; -$lang->program->PRJAclList['open'] = "Open(Users who can visit {$lang->projectCommon} can access it)"; +$lang->program->PRJAclList['open'] = "Open(Users who can visit project can access it)"; $lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)'; -$lang->program->PGMPRJAclList['open'] = "全部公开(有项目视图权限,即可访问)"; -$lang->program->PGMPRJAclList['openinside'] = "项目集内公开(所有上级项目集负责人和干系人,本项目团队成员和干系人可访问)"; -$lang->program->PGMPRJAclList['private'] = "私有(项目团队成员和干系人可访问)"; +$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)"; +$lang->program->PGMPRJAclList['openinside'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)"; +$lang->program->PGMPRJAclList['private'] = "Private (accessible to project team members and associates)"; $lang->program->PRJAuthList['extend'] = 'Inherit (project privilege and company privilege)'; $lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)'; @@ -178,6 +178,7 @@ $lang->program->PGMExport = 'Export'; $lang->program->PGMStakeholder = 'Stakeholder'; $lang->program->createStakeholder = 'Create stakeholder'; $lang->program->importStakeholder = 'Import program'; +$lang->program->PGMManageMembers = 'Program Team'; /* Fields. */ $lang->program->PGMName = 'Name'; diff --git a/module/program/lang/en.php b/module/program/lang/en.php index c46f1fd0c1..7cf8d97d8f 100644 --- a/module/program/lang/en.php +++ b/module/program/lang/en.php @@ -96,12 +96,12 @@ $lang->program->featureBar['wait'] = 'Waiting'; $lang->program->featureBar['suspended'] = 'Suspended'; $lang->program->featureBar['closed'] = 'Closed'; -$lang->program->PRJAclList['open'] = "Open(Users who can visit {$lang->projectCommon} can access it)"; +$lang->program->PRJAclList['open'] = "Open(Users who can visit project can access it)"; $lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)'; -$lang->program->PGMPRJAclList['open'] = "全部公开(有项目视图权限,即可访问)"; -$lang->program->PGMPRJAclList['openinside'] = "项目集内公开(所有上级项目集负责人和干系人,本项目团队成员和干系人可访问)"; -$lang->program->PGMPRJAclList['private'] = "私有(项目团队成员和干系人可访问)"; +$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)"; +$lang->program->PGMPRJAclList['openinside'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)"; +$lang->program->PGMPRJAclList['private'] = "Private (accessible to project team members and associates)"; $lang->program->PRJAuthList['extend'] = 'Inherit (project privilege and company privilege)'; $lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)'; @@ -178,6 +178,7 @@ $lang->program->PGMExport = 'Export'; $lang->program->PGMStakeholder = 'Stakeholder'; $lang->program->createStakeholder = 'Create stakeholder'; $lang->program->importStakeholder = 'Import program'; +$lang->program->PGMManageMembers = 'Program Team'; /* Fields. */ $lang->program->PGMName = 'Name'; diff --git a/module/program/lang/fr.php b/module/program/lang/fr.php index c46f1fd0c1..7cf8d97d8f 100644 --- a/module/program/lang/fr.php +++ b/module/program/lang/fr.php @@ -96,12 +96,12 @@ $lang->program->featureBar['wait'] = 'Waiting'; $lang->program->featureBar['suspended'] = 'Suspended'; $lang->program->featureBar['closed'] = 'Closed'; -$lang->program->PRJAclList['open'] = "Open(Users who can visit {$lang->projectCommon} can access it)"; +$lang->program->PRJAclList['open'] = "Open(Users who can visit project can access it)"; $lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)'; -$lang->program->PGMPRJAclList['open'] = "全部公开(有项目视图权限,即可访问)"; -$lang->program->PGMPRJAclList['openinside'] = "项目集内公开(所有上级项目集负责人和干系人,本项目团队成员和干系人可访问)"; -$lang->program->PGMPRJAclList['private'] = "私有(项目团队成员和干系人可访问)"; +$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)"; +$lang->program->PGMPRJAclList['openinside'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)"; +$lang->program->PGMPRJAclList['private'] = "Private (accessible to project team members and associates)"; $lang->program->PRJAuthList['extend'] = 'Inherit (project privilege and company privilege)'; $lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)'; @@ -178,6 +178,7 @@ $lang->program->PGMExport = 'Export'; $lang->program->PGMStakeholder = 'Stakeholder'; $lang->program->createStakeholder = 'Create stakeholder'; $lang->program->importStakeholder = 'Import program'; +$lang->program->PGMManageMembers = 'Program Team'; /* Fields. */ $lang->program->PGMName = 'Name'; diff --git a/module/program/lang/vi.php b/module/program/lang/vi.php index c46f1fd0c1..7cf8d97d8f 100644 --- a/module/program/lang/vi.php +++ b/module/program/lang/vi.php @@ -96,12 +96,12 @@ $lang->program->featureBar['wait'] = 'Waiting'; $lang->program->featureBar['suspended'] = 'Suspended'; $lang->program->featureBar['closed'] = 'Closed'; -$lang->program->PRJAclList['open'] = "Open(Users who can visit {$lang->projectCommon} can access it)"; +$lang->program->PRJAclList['open'] = "Open(Users who can visit project can access it)"; $lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)'; -$lang->program->PGMPRJAclList['open'] = "全部公开(有项目视图权限,即可访问)"; -$lang->program->PGMPRJAclList['openinside'] = "项目集内公开(所有上级项目集负责人和干系人,本项目团队成员和干系人可访问)"; -$lang->program->PGMPRJAclList['private'] = "私有(项目团队成员和干系人可访问)"; +$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)"; +$lang->program->PGMPRJAclList['openinside'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)"; +$lang->program->PGMPRJAclList['private'] = "Private (accessible to project team members and associates)"; $lang->program->PRJAuthList['extend'] = 'Inherit (project privilege and company privilege)'; $lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)'; @@ -178,6 +178,7 @@ $lang->program->PGMExport = 'Export'; $lang->program->PGMStakeholder = 'Stakeholder'; $lang->program->createStakeholder = 'Create stakeholder'; $lang->program->importStakeholder = 'Import program'; +$lang->program->PGMManageMembers = 'Program Team'; /* Fields. */ $lang->program->PGMName = 'Name'; diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php index b4bec1c377..3d448998c4 100644 --- a/module/program/lang/zh-cn.php +++ b/module/program/lang/zh-cn.php @@ -178,6 +178,7 @@ $lang->program->PGMExport = '导出'; $lang->program->PGMStakeholder = '干系人列表'; $lang->program->createStakeholder = '添加干系人'; $lang->program->importStakeholder = '从父项目集导入'; +$lang->program->PGMManageMembers = '项目集团队'; /* Fields. */ $lang->program->PGMName = '项目集名称'; diff --git a/module/program/lang/zh-tw.php b/module/program/lang/zh-tw.php index 241670b65d..6cf5173d50 100644 --- a/module/program/lang/zh-tw.php +++ b/module/program/lang/zh-tw.php @@ -178,6 +178,7 @@ $lang->program->PGMExport = '導出'; $lang->program->PGMStakeholder = '干係人列表'; $lang->program->createStakeholder = '添加干係人'; $lang->program->importStakeholder = '從父項目集導入'; +$lang->program->PGMManageMembers = '項目集團隊'; /* Fields. */ $lang->program->PGMName = '項目集名稱';