Do not list private projects when adding a new user

This commit is contained in:
Frederic Guillot 2017-03-19 17:05:28 -04:00
parent d915c2a96b
commit b27a7db354
2 changed files with 25 additions and 5 deletions

View File

@ -202,16 +202,23 @@ class ProjectModel extends Base
* Return the list of all projects
*
* @access public
* @param bool $prepend If true, prepend to the list the value 'None'
* @param bool $prependNone
* @param bool $noPrivateProjects
* @return array
*/
public function getList($prepend = true)
public function getList($prependNone = true, $noPrivateProjects = true)
{
if ($prepend) {
return array(t('None')) + $this->db->hashtable(self::TABLE)->asc('name')->getAll('id', 'name');
if ($noPrivateProjects) {
$projects = $this->db->hashtable(self::TABLE)->eq('is_private', 0)->asc('name')->getAll('id', 'name');
} else {
$projects = $this->db->hashtable(self::TABLE)->asc('name')->getAll('id', 'name');
}
return $this->db->hashtable(self::TABLE)->asc('name')->getAll('id', 'name');
if ($prependNone) {
return array(t('None')) + $projects;
}
return $projects;
}
/**

View File

@ -354,4 +354,17 @@ class ProjectModelTest extends Base
$this->assertEquals('', $project['owner_username']);
$this->assertEquals(0, $project['owner_id']);
}
public function testGetList()
{
$projectModel = new ProjectModel($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'Project B'), 1));
$this->assertEquals(2, $projectModel->create(array('name' => 'Project A', 'is_private' => 1), 1));
$this->assertEquals(array(0 => 'None', 1 => 'Project B'), $projectModel->getList());
$this->assertEquals(array(1 => 'Project B'), $projectModel->getList(false));
$this->assertEquals(array(2 => 'Project A', 1 => 'Project B'), $projectModel->getList(false, false));
$this->assertEquals(array(0 => 'None', 2 => 'Project A', 1 => 'Project B'), $projectModel->getList(true, false));
}
}