diff options
author | Frédéric Guillot <contact@fredericguillot.com> | 2014-03-05 19:47:46 -0500 |
---|---|---|
committer | Frédéric Guillot <contact@fredericguillot.com> | 2014-03-05 19:47:46 -0500 |
commit | 5d9b5aee6d70de0c1cbd6abe79a22a6c51719069 (patch) | |
tree | 8c89ad98effb80681882853e728fc4d2c80a396a | |
parent | 1d94ba9914751b6acd742e5538263b0f394e9189 (diff) | |
parent | 850abb1500a2785e64c0ac7aa621ec55920439c4 (diff) |
Merge branch 'patch-1' of github.com:toomyem/kanboard
-rw-r--r-- | models/project.php | 9 | ||||
-rw-r--r-- | tests/ProjectTest.php | 8 |
2 files changed, 16 insertions, 1 deletions
diff --git a/models/project.php b/models/project.php index a2f66478..45cd1baa 100644 --- a/models/project.php +++ b/models/project.php @@ -82,6 +82,15 @@ class Project extends Base if ($nb_users < 1) return true; + // check if user has admin rights + $nb_users = $this->db + ->table(\Model\User::TABLE) + ->eq('id', $user_id) + ->eq('is_admin', 1) + ->count(); + + if ($nb_users > 0) return true; + // Otherwise, allow only specific users return (bool) $this->db ->table(self::TABLE_USERS) diff --git a/tests/ProjectTest.php b/tests/ProjectTest.php index 6eb39f52..33a35168 100644 --- a/tests/ProjectTest.php +++ b/tests/ProjectTest.php @@ -57,7 +57,13 @@ class ProjectTest extends PHPUnit_Framework_TestCase $this->assertTrue($p->revokeUser(1, 1)); $this->assertEquals(array('2' => 'unittest'), $p->getAllowedUsers(1)); - $this->assertFalse($p->isUserAllowed(1, 1)); + $this->assertTrue($p->isUserAllowed(1, 1)); // has admin priviledges $this->assertTrue($p->isUserAllowed(1, 2)); + + // Check if revoked regular user is not allowed + $this->assertTrue($p->allowUser(1, 1)); + $this->assertTrue($p->revokeUser(1, 2)); + $this->assertEquals(array('1' => 'admin'), $p->getAllowedUsers(1)); + $this->assertFalse($p->isUserAllowed(1, 2)); // regulat user is not allowed } } |