Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiosmosis <diosmosis@users.noreply.github.com>2018-09-06 19:41:40 +0300
committerStefan Giehl <stefan@piwik.org>2018-09-06 19:41:40 +0300
commit9acf1e0ee4a7da143ec5e72640db9660f892424b (patch)
treef4d108adbc7ccc0750b1d3d48ef43eafbb9da690 /plugins/UsersManager
parent5e71b34bbc05376a729a454d4f421dbfb9d26e39 (diff)
Make sure UserTableFilter can filter by new roles/capabilities. (#13390)
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r--plugins/UsersManager/Sql/UserTableFilter.php9
-rw-r--r--plugins/UsersManager/tests/Integration/APITest.php9
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()