diff options
-rw-r--r-- | app/Model/ProjectModel.php | 17 | ||||
-rw-r--r-- | tests/units/Model/ProjectModelTest.php | 13 |
2 files changed, 25 insertions, 5 deletions
diff --git a/app/Model/ProjectModel.php b/app/Model/ProjectModel.php index f59cae85..cabfee8a 100644 --- a/app/Model/ProjectModel.php +++ b/app/Model/ProjectModel.php @@ -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; } /** diff --git a/tests/units/Model/ProjectModelTest.php b/tests/units/Model/ProjectModelTest.php index 1f65cad7..03ba708e 100644 --- a/tests/units/Model/ProjectModelTest.php +++ b/tests/units/Model/ProjectModelTest.php @@ -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)); + } } |