summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2017-03-19 17:05:28 -0400
committerFrederic Guillot <fred@kanboard.net>2017-03-19 17:05:28 -0400
commitb27a7db35465817afd54aa2af99446e9a13ffd76 (patch)
tree3a7950e2723249d36bf572593f1467a6e3c86d3c
parentd915c2a96b0cbb54b9949cc04495d156e1f89332 (diff)
Do not list private projects when adding a new user
-rw-r--r--app/Model/ProjectModel.php17
-rw-r--r--tests/units/Model/ProjectModelTest.php13
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));
+ }
}