summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Guillot <contact@fredericguillot.com>2014-03-05 19:47:46 -0500
committerFrédéric Guillot <contact@fredericguillot.com>2014-03-05 19:47:46 -0500
commit5d9b5aee6d70de0c1cbd6abe79a22a6c51719069 (patch)
tree8c89ad98effb80681882853e728fc4d2c80a396a
parent1d94ba9914751b6acd742e5538263b0f394e9189 (diff)
parent850abb1500a2785e64c0ac7aa621ec55920439c4 (diff)
Merge branch 'patch-1' of github.com:toomyem/kanboard
-rw-r--r--models/project.php9
-rw-r--r--tests/ProjectTest.php8
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
}
}