Merge branch 'zentaopms_239_wangjianhua_70792' into 'zentaopms_239'
* Fix bug: dese not show linked projects in Repo edit page. See merge request easycorp/zentaopms!5770
This commit is contained in:
+2
-30
@@ -208,7 +208,7 @@ class repo extends control
|
||||
$this->view->projects = $options;
|
||||
}
|
||||
|
||||
$projectOptions = $this->filterProject(explode(',', $repo->product), explode(',', $repo->projects));
|
||||
$projectOptions = $this->repo->filterProject(explode(',', $repo->product), explode(',', $repo->projects));
|
||||
|
||||
$shadowProduct = null;
|
||||
$productIDList = explode(',', $repo->product);
|
||||
@@ -1233,38 +1233,10 @@ class repo extends control
|
||||
->setDefault('projects', array())
|
||||
->get();
|
||||
|
||||
$projectOptions = $this->filterProject($postData->products, $postData->projects);
|
||||
$projectOptions = $this->repo->filterProject($postData->products, $postData->projects);
|
||||
return print html::select('projects[]', $projectOptions, $postData->projects, "class='form-control chosen' multiple");
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove projects without privileges.
|
||||
*
|
||||
* @param array $productIDList
|
||||
* @param array $projectIDList
|
||||
* @access private
|
||||
* @return array
|
||||
*/
|
||||
private function filterProject($productIDList, $projectIDList = array())
|
||||
{
|
||||
$allProjects = array();
|
||||
foreach($productIDList as $productID)
|
||||
{
|
||||
$projects = $this->loadModel('product')->getProjectPairsByProduct($productID);
|
||||
$allProjects = $allProjects + $projects;
|
||||
}
|
||||
|
||||
$accessProjects = explode(',', $this->app->user->view->projects);
|
||||
$accessProjects = $accessProjects + $projectIDList; /* Merge projects can be accessed and exists.*/
|
||||
$projectOptions = array();
|
||||
foreach($allProjects as $projectID => $projectName)
|
||||
{
|
||||
if(in_array($projectID, $accessProjects)) $projectOptions[$projectID] = $projectName;
|
||||
}
|
||||
|
||||
return $projectOptions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajax get hosts.
|
||||
*
|
||||
|
||||
@@ -2209,4 +2209,27 @@ class repoModel extends model
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove projects without privileges.
|
||||
*
|
||||
* @param array $productIDList
|
||||
* @param array $projectIDList
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function filterProject($productIDList, $projectIDList = array())
|
||||
{
|
||||
/* Get all projects that can be accessed. */
|
||||
$accessProjects = array();
|
||||
foreach($productIDList as $productID)
|
||||
{
|
||||
$projects = $this->loadModel('product')->getProjectPairsByProduct($productID);
|
||||
$accessProjects = $accessProjects + $projects;
|
||||
}
|
||||
|
||||
/* Get linked projects. */
|
||||
$linkedProjects = $this->dao->select('id,name')->from(TABLE_PROJECT)->where('id')->in($projectIDList)->fetchPairs('id', 'name');
|
||||
return $accessProjects + $linkedProjects; // Merge projects can be accessed and exists.
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user