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:
authordizzy <diosmosis@users.noreply.github.com>2021-08-10 15:50:29 +0300
committerGitHub <noreply@github.com>2021-08-10 15:50:29 +0300
commitdc696663d4edd14e3b3fed8771e79413ab167450 (patch)
treed23a50ca068ace681ae0f6c7b9bc70225dc7a2c4 /plugins/UsersManager
parent1c287f118dcccbaea6385550e2c1e94969ec2618 (diff)
Fixing some test failures (#17852)
* fix controller test * debug travis failure * debug some more * more debugging * more debugging * another debug * another debug * more debug + fix test? * remove debug changes * remove forced failure * ui test change, check status in assert for more information in test output * check image magick status AFTER comparison threshold check * try to debug test performance on travis * try to speed up some tests * fix test change * fix test * update two screenshots * update UI test again and fix random failure hopefully * try to get rid of some more random failures * some more debugging * try fixing some more random failures * stop using screenshotSelector in some tests since it (inexplicably) cant find jquery on the test page + mysqli test * another ui test tweak * trigger new build * try fixing more random failures * updates expected test file Co-authored-by: sgiehl <stefan@matomo.org>
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r--plugins/UsersManager/UserAccessFilter.php4
-rw-r--r--plugins/UsersManager/tests/Integration/UserAccessFilterTest.php48
2 files changed, 31 insertions, 21 deletions
diff --git a/plugins/UsersManager/UserAccessFilter.php b/plugins/UsersManager/UserAccessFilter.php
index df41df381a..e331c20bb3 100644
--- a/plugins/UsersManager/UserAccessFilter.php
+++ b/plugins/UsersManager/UserAccessFilter.php
@@ -116,7 +116,9 @@ class UserAccessFilter
*/
public function filterUser($user)
{
- if ($this->access->hasSuperUserAccess() || $this->isNonSuperUserAllowedToSeeThisLogin($user['login'])) {
+ if ($this->access->hasSuperUserAccess()
+ || (!empty($user['login']) && $this->isNonSuperUserAllowedToSeeThisLogin($user['login']))
+ ) {
return $user;
}
}
diff --git a/plugins/UsersManager/tests/Integration/UserAccessFilterTest.php b/plugins/UsersManager/tests/Integration/UserAccessFilterTest.php
index 76f2cda923..85cab11ab3 100644
--- a/plugins/UsersManager/tests/Integration/UserAccessFilterTest.php
+++ b/plugins/UsersManager/tests/Integration/UserAccessFilterTest.php
@@ -46,7 +46,7 @@ class UserAccessFilterTest extends IntegrationTestCase
*/
private $filter;
- private $users = array(
+ private static $users = array(
'login2' => array('view' => array(1,3,5), 'admin' => array(2,6)),
'login3' => array('view' => array(), 'admin' => array()), // no access to any site
'login4' => array('view' => array(6), 'admin' => array()), // only access to one with view
@@ -64,13 +64,19 @@ class UserAccessFilterTest extends IntegrationTestCase
$this->model = new Model();
$this->access = new FakeAccess();
- $this->createManyWebsites();
- $this->createManyUsers();
FakeAccess::clearAccess();
$this->filter = new TestUserAccessFilter($this->model, $this->access);
}
+ protected static function beforeTableDataCached()
+ {
+ parent::beforeTableDataCached();
+
+ self::createManyWebsites();
+ self::createManyUsers();
+ }
+
public function test_filterUser_WithSuperUserAccess_ShouldAlwaysReturnTrue()
{
$this->configureAccessForLogin('login1');
@@ -258,7 +264,7 @@ class UserAccessFilterTest extends IntegrationTestCase
$this->assertSame(array(), $this->buildLogins(array()));
}
- private function createManyWebsites()
+ private static function createManyWebsites()
{
for ($i = 0; $i < 10; $i++) {
Fixture::createWebsite('2014-01-01 00:00:00');
@@ -281,24 +287,26 @@ class UserAccessFilterTest extends IntegrationTestCase
return $logins;
}
- private function createManyUsers()
+ private static function createManyUsers()
{
- $this->model->addUser('login1', md5('pass'), 'email1@example.com', '2008-01-01 00:00:00');
- $this->model->addUser('login2', md5('pass'), 'email2@example.com', '2008-01-01 00:00:00');
+ $model = new Model();
+
+ $model->addUser('login1', md5('pass'), 'email1@example.com', '2008-01-01 00:00:00');
+ $model->addUser('login2', md5('pass'), 'email2@example.com', '2008-01-01 00:00:00');
// login3 won't have access to any site
- $this->model->addUser('login3', md5('pass'), 'email3@example.com', '2008-01-01 00:00:00');
- $this->model->addUser('login4', md5('pass'), 'email4@example.com', '2008-01-01 00:00:00');
- $this->model->addUser('login5', md5('pass'), 'email5@example.com', '2008-01-01 00:00:00');
- $this->model->addUser('login6', md5('pass'), 'email6@example.com', '2008-01-01 00:00:00');
- $this->model->addUser('login7', md5('pass'), 'email7@example.com', '2008-01-01 00:00:00');
- $this->model->addUser('login8', md5('pass'), 'email8@example.com', '2008-01-01 00:00:00');
- $this->model->addUser('anonymous', '', 'ano@example.com', '2008-01-01 00:00:00');
+ $model->addUser('login3', md5('pass'), 'email3@example.com', '2008-01-01 00:00:00');
+ $model->addUser('login4', md5('pass'), 'email4@example.com', '2008-01-01 00:00:00');
+ $model->addUser('login5', md5('pass'), 'email5@example.com', '2008-01-01 00:00:00');
+ $model->addUser('login6', md5('pass'), 'email6@example.com', '2008-01-01 00:00:00');
+ $model->addUser('login7', md5('pass'), 'email7@example.com', '2008-01-01 00:00:00');
+ $model->addUser('login8', md5('pass'), 'email8@example.com', '2008-01-01 00:00:00');
+ $model->addUser('anonymous', '', 'ano@example.com', '2008-01-01 00:00:00');
- $this->model->setSuperUserAccess('login1', true); // we treat this one as our superuser
+ $model->setSuperUserAccess('login1', true); // we treat this one as our superuser
- foreach ($this->users as $login => $permissions) {
+ foreach (self::$users as $login => $permissions) {
foreach ($permissions as $access => $idSites) {
- $this->model->addUserAccess($login, $access, $idSites);
+ $model->addUserAccess($login, $access, $idSites);
}
}
}
@@ -311,9 +319,9 @@ class UserAccessFilterTest extends IntegrationTestCase
if ($login === 'login1') {
$hasSuperUser = true;
- } elseif (isset($this->users[$login])) {
- $idSitesAdmin = $this->users[$login]['admin'];
- $idSitesView = $this->users[$login]['view'];
+ } elseif (isset(self::$users[$login])) {
+ $idSitesAdmin = self::$users[$login]['admin'];
+ $idSitesView = self::$users[$login]['view'];
}
FakeAccess::clearAccess($hasSuperUser, $idSitesAdmin, $idSitesView, $login);