diff options
author | diosmosis <diosmosis@users.noreply.github.com> | 2018-09-06 19:41:40 +0300 |
---|---|---|
committer | Stefan Giehl <stefan@piwik.org> | 2018-09-06 19:41:40 +0300 |
commit | 9acf1e0ee4a7da143ec5e72640db9660f892424b (patch) | |
tree | f4d108adbc7ccc0750b1d3d48ef43eafbb9da690 /plugins/UsersManager | |
parent | 5e71b34bbc05376a729a454d4f421dbfb9d26e39 (diff) |
Make sure UserTableFilter can filter by new roles/capabilities. (#13390)
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r-- | plugins/UsersManager/Sql/UserTableFilter.php | 9 | ||||
-rw-r--r-- | plugins/UsersManager/tests/Integration/APITest.php | 9 |
2 files changed, 13 insertions, 5 deletions
diff --git a/plugins/UsersManager/Sql/UserTableFilter.php b/plugins/UsersManager/Sql/UserTableFilter.php index 24bd60e55f..46c0e43f39 100644 --- a/plugins/UsersManager/Sql/UserTableFilter.php +++ b/plugins/UsersManager/Sql/UserTableFilter.php @@ -104,14 +104,13 @@ class UserTableFilter case 'some': $sql = "(a.access IS NOT NULL OR u.superuser_access = 1)"; break; - case 'view': - case 'admin': - $sql = "a.access = ?"; - $bind[] = $this->filterByRole; - break; case 'superuser': $sql = "u.superuser_access = 1"; break; + default: + $sql = "a.access = ?"; + $bind[] = $this->filterByRole; + break; } return [$sql, $bind]; diff --git a/plugins/UsersManager/tests/Integration/APITest.php b/plugins/UsersManager/tests/Integration/APITest.php index 7da1339cef..241ce6d4bf 100644 --- a/plugins/UsersManager/tests/Integration/APITest.php +++ b/plugins/UsersManager/tests/Integration/APITest.php @@ -425,6 +425,7 @@ class APITest extends IntegrationTestCase $this->addUserWithAccess('userLogin3', 'view', 1); $this->addUserWithAccess('userLogin4', 'superuser', 1); $this->addUserWithAccess('userLogin5', 'admin', 1); + $this->addUserWithAccess('userLogin6', 'write', 1); $this->setCurrentUser('userLogin2', 'admin', 1); $users = $this->api->getUsersPlusRole(1, null, null, null, 'admin'); @@ -434,6 +435,14 @@ class APITest extends IntegrationTestCase ['login' => 'userLogin5', 'alias' => 'userLogin5', 'role' => 'admin', 'capabilities' => []], ]; $this->assertEquals($expected, $users); + + // check new write role filtering works + $users = $this->api->getUsersPlusRole(1, null, null, null, 'write'); + $this->cleanUsers($users); + $expected = [ + ['login' => 'userLogin6', 'alias' => 'userLogin6', 'role' => 'write', 'capabilities' => []], + ]; + $this->assertEquals($expected, $users); } public function test_getUsersPlusRole_shouldReturnUsersWithNoAccessCorrectly() |