diff --git a/core/Access.php b/core/Access.php index 5490cc5d419..a02a4308021 100644 --- a/core/Access.php +++ b/core/Access.php @@ -167,7 +167,7 @@ public function reloadAccess(Auth $auth = null) return $this->reloadAccessSuperUser(); } // in case multiple calls to API using different tokens, we ensure we reset it as not SU - $this->setSuperUser(false); + $this->setSuperUserAccess(false); // we join with site in case there are rows in access for an idsite that doesn't exist anymore // (backward compatibility ; before we deleted the site without deleting rows in _access table) @@ -226,7 +226,7 @@ protected function reloadAccessSuperUser() * * @param bool $bool */ - public function setSuperUser($bool = true) + public function setSuperUserAccess($bool = true) { if ($bool) { $this->reloadAccessSuperUser(); @@ -236,6 +236,15 @@ public function setSuperUser($bool = true) } } + /** + * @see Access::setSuperUserAccess() + * @deprecated deprecated since version 2.0.4 + */ + public function setSuperUser($bool = true) + { + self::setSuperUserAccess($bool); + } + /** * Returns true if the current user is logged in as the super user * diff --git a/core/Piwik.php b/core/Piwik.php index 5c787ed7a12..ffd04befa6a 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -332,7 +332,8 @@ static public function checkUserHasSuperUserAccessOrIsTheUser($theUser) } /** - * Check whether the given user has superuser access. + * Check whether the given user has superuser access. Note: This method will return false if current user + * has not superuser access. * * @param string $theUser A username. * @return bool @@ -349,10 +350,10 @@ static public function hasTheUserSuperUserAccess($theUser) } try { - // TODO method will always return false if current user has not superuser access $superUserLogins = APIUsersManager::getInstance()->getUsersLoginHavingSuperUserAccess(); } catch (\Exception $e) { - $superUserLogins = array(); + // not allowed to request user logins + return false; } return in_array($theUser, $superUserLogins); @@ -420,7 +421,7 @@ static public function checkUserIsNotAnonymous() */ static public function setUserHasSuperUserAccess($bool = true) { - Access::getInstance()->setSuperUser($bool); + Access::getInstance()->setSuperUserAccess($bool); } /** diff --git a/tests/PHPUnit/Core/DeprecatedMethodsTest.php b/tests/PHPUnit/Core/DeprecatedMethodsTest.php index 9f51d568749..02d53f32ee2 100644 --- a/tests/PHPUnit/Core/DeprecatedMethodsTest.php +++ b/tests/PHPUnit/Core/DeprecatedMethodsTest.php @@ -32,6 +32,7 @@ public function test_version2_0_4() $this->assertDeprecatedMethodIsRemoved('\Piwik\Access', 'isSuperUser', $validTill); $this->assertDeprecatedMethodIsRemoved('\Piwik\Access', 'checksUserIsSuperUser', $validTill); $this->assertDeprecatedMethodIsRemoved('\Piwik\Access', 'getSuperUserLogin', $validTill); + $this->assertDeprecatedMethodIsRemoved('\Piwik\Access', 'setSuperUser', $validTill); $this->assertDeprecatedMethodIsRemoved('\FakeAccess', 'checksUserIsSuperUser', $validTill); $this->assertDeprecatedMethodIsRemoved('\FakeAccess', 'setSuperUser', $validTill); $this->assertDeprecatedMethodIsRemoved('\FakeAccess', 'getSuperUserLogin', $validTill); diff --git a/tests/PHPUnit/Integration/Core/AccessTest.php b/tests/PHPUnit/Integration/Core/AccessTest.php index d4e70353f08..98be847021e 100644 --- a/tests/PHPUnit/Integration/Core/AccessTest.php +++ b/tests/PHPUnit/Integration/Core/AccessTest.php @@ -21,9 +21,6 @@ public function setUp() Access::setSingletonInstance(null); } - /** - * @group Core - */ public function testGetListAccess() { $accessList = Access::getListAccess(); @@ -31,74 +28,50 @@ public function testGetListAccess() $this->assertEquals($shouldBe, $accessList); } - /** - * @group Core - */ public function testGetTokenAuthWithEmptyAccess() { $access = new Access(); $this->assertNull($access->getTokenAuth()); } - /** - * @group Core - */ public function testGetLoginWithEmptyAccess() { $access = new Access(); $this->assertNull($access->getLogin()); } - /** - * @group Core - */ - public function testIsSuperUserWithEmptyAccess() + public function testHasSuperUserAccessWithEmptyAccess() { $access = new Access(); $this->assertFalse($access->hasSuperUserAccess()); } - /** - * @group Core - */ - public function testIsSuperUserWithSuperUserAccess() + public function testHasSuperUserAccessWithSuperUserAccess() { $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $this->assertTrue($access->hasSuperUserAccess()); } - /** - * @group Core - */ - public function testIsSuperUserWithNoSuperUserAccess() + public function testHasSuperUserAccessWithNoSuperUserAccess() { $access = Access::getInstance(); - $access->setSuperUser(false); + $access->setSuperUserAccess(false); $this->assertFalse($access->hasSuperUserAccess()); } - /** - * @group Core - */ public function testGetSitesIdWithAtLeastViewAccessWithEmptyAccess() { $access = new Access(); $this->assertEmpty($access->getSitesIdWithAtLeastViewAccess()); } - /** - * @group Core - */ public function testGetSitesIdWithAdminAccessWithEmptyAccess() { $access = new Access(); $this->assertEmpty($access->getSitesIdWithAdminAccess()); } - /** - * @group Core - */ public function testGetSitesIdWithViewAccessWithEmptyAccess() { $access = new Access(); @@ -106,29 +79,22 @@ public function testGetSitesIdWithViewAccessWithEmptyAccess() } /** - * @group Core - * * @expectedException Piwik\NoAccessException */ - public function testCheckUserIsSuperUserWithEmptyAccess() + public function testCheckUserHasSuperUserAccessWithEmptyAccess() { $access = new Access(); $access->checkUserHasSuperUserAccess(); } - /** - * @group Core - */ - public function testCheckUserIsSuperUserWithSuperUserAccess() + public function testCheckUserHasSuperUserAccessWithSuperUserAccess() { $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $access->checkUserHasSuperUserAccess(); } /** - * @group Core - * * @expectedException Piwik\NoAccessException */ public function testCheckUserHasSomeAdminAccessWithEmptyAccess() @@ -137,19 +103,13 @@ public function testCheckUserHasSomeAdminAccessWithEmptyAccess() $access->checkUserHasSomeAdminAccess(); } - /** - * @group Core - */ public function testCheckUserHasSomeAdminAccessWithSuperUserAccess() { $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $access->checkUserHasSomeAdminAccess(); } - /** - * @group Core - */ public function testCheckUserHasSomeAdminAccessWithSomeAccess() { $mock = $this->getMock( @@ -165,8 +125,6 @@ public function testCheckUserHasSomeAdminAccessWithSomeAccess() } /** - * @group Core - * * @expectedException Piwik\NoAccessException */ public function testCheckUserHasSomeViewAccessWithEmptyAccess() @@ -175,19 +133,13 @@ public function testCheckUserHasSomeViewAccessWithEmptyAccess() $access->checkUserHasSomeViewAccess(); } - /** - * @group Core - */ public function testCheckUserHasSomeViewAccessWithSuperUserAccess() { $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $access->checkUserHasSomeViewAccess(); } - /** - * @group Core - */ public function testCheckUserHasSomeViewAccessWithSomeAccess() { $mock = $this->getMock( @@ -203,8 +155,6 @@ public function testCheckUserHasSomeViewAccessWithSomeAccess() } /** - * @group Core - * * @expectedException Piwik\NoAccessException */ public function testCheckUserHasViewAccessWithEmptyAccessNoSiteIdsGiven() @@ -213,19 +163,13 @@ public function testCheckUserHasViewAccessWithEmptyAccessNoSiteIdsGiven() $access->checkUserHasViewAccess(array()); } - /** - * @group Core - */ public function testCheckUserHasViewAccessWithSuperUserAccess() { $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $access->checkUserHasViewAccess(array()); } - /** - * @group Core - */ public function testCheckUserHasViewAccessWithSomeAccessSuccessIdSitesAsString() { $mock = $this->getMock( @@ -240,9 +184,6 @@ public function testCheckUserHasViewAccessWithSomeAccessSuccessIdSitesAsString() $mock->checkUserHasViewAccess('1,3'); } - /** - * @group Core - */ public function testCheckUserHasViewAccessWithSomeAccessSuccessAllSites() { $mock = $this->getMock( @@ -258,8 +199,6 @@ public function testCheckUserHasViewAccessWithSomeAccessSuccessAllSites() } /** - * @group Core - * * @expectedException Piwik\NoAccessException */ public function testCheckUserHasViewAccessWithSomeAccessFailure() @@ -276,19 +215,14 @@ public function testCheckUserHasViewAccessWithSomeAccessFailure() $mock->checkUserHasViewAccess(array(1, 5)); } - /** - * @group Core - */ public function testCheckUserHasAdminAccessWithSuperUserAccess() { $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $access->checkUserHasAdminAccess(array()); } /** - * @group Core - * * @expectedException Piwik\NoAccessException */ public function testCheckUserHasAdminAccessWithEmptyAccessNoSiteIdsGiven() @@ -297,9 +231,6 @@ public function testCheckUserHasAdminAccessWithEmptyAccessNoSiteIdsGiven() $access->checkUserHasViewAccess(array()); } - /** - * @group Core - */ public function testCheckUserHasAdminAccessWithSomeAccessSuccessIdSitesAsString() { $mock = $this->getMock( @@ -314,9 +245,6 @@ public function testCheckUserHasAdminAccessWithSomeAccessSuccessIdSitesAsString( $mock->checkUserHasAdminAccess('1,3'); } - /** - * @group Core - */ public function testCheckUserHasAdminAccessWithSomeAccessSuccessAllSites() { $mock = $this->getMock( @@ -336,8 +264,6 @@ public function testCheckUserHasAdminAccessWithSomeAccessSuccessAllSites() } /** - * @group Core - * * @expectedException Piwik\NoAccessException */ public function testCheckUserHasAdminAccessWithSomeAccessFailure() @@ -354,28 +280,19 @@ public function testCheckUserHasAdminAccessWithSomeAccessFailure() $mock->checkUserHasAdminAccess(array(1, 5)); } - /** - * @group Core - */ public function testReloadAccessWithEmptyAuth() { $access = new Access(); $this->assertFalse($access->reloadAccess(null)); } - /** - * @group Core - */ public function testReloadAccessWithEmptyAuthSuperUser() { $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $this->assertTrue($access->reloadAccess(null)); } - /** - * @group Core - */ public function testReloadAccessWithMockedAuthValid() { $mock = $this->getMock('\\Piwik\\Auth', array('authenticate', 'getName', 'initSession')); diff --git a/tests/PHPUnit/Integration/Core/PiwikTest.php b/tests/PHPUnit/Integration/Core/PiwikTest.php index 1f289fde94e..d364b762b59 100644 --- a/tests/PHPUnit/Integration/Core/PiwikTest.php +++ b/tests/PHPUnit/Integration/Core/PiwikTest.php @@ -11,6 +11,7 @@ use Piwik\Piwik; use Piwik\Plugins\SitesManager\API; use Piwik\Translate; +use Piwik\Config; /** * Class Core_PiwikTest @@ -19,6 +20,18 @@ */ class Core_PiwikTest extends DatabaseTestCase { + public function setUp() + { + parent::setUp(); + + // we make sure the tests don't depend on the config file content + Config::getInstance()->superuser = array( + 'login' => 'superusertest', + 'password' => 'passwordsuperusertest', + 'email' => 'superuser@example.com' + ); + } + /** * Tests the generated JS code * @group Core @@ -81,8 +94,6 @@ public function getValidNumeric() } /** - * @group Core - * * @dataProvider getValidNumeric */ public function testIsNumericValid($toTest) @@ -105,8 +116,6 @@ public function getInvalidNumeric() } /** - * @group Core - * * @dataProvider getInvalidNumeric */ public function testIsNumericNotValid($toTest) @@ -114,9 +123,6 @@ public function testIsNumericNotValid($toTest) $this->assertFalse(is_numeric($toTest), $toTest . " valid but shouldn't!"); } - /** - * @group Core - */ public function testSecureDiv() { $this->assertSame(3, Piwik::secureDiv(9, 3)); @@ -125,7 +131,6 @@ public function testSecureDiv() $this->assertSame(10.0, Piwik::secureDiv(10.0, 1.0)); $this->assertSame(5.5, Piwik::secureDiv(11.0, 2)); $this->assertSame(0, Piwik::secureDiv(11.0, 'a')); - } /** @@ -154,8 +159,6 @@ public function getPrettyTimeFromSecondsData() } /** - * @group Core - * * @dataProvider getPrettyTimeFromSecondsData */ public function testGetPrettyTimeFromSeconds($seconds, $expected) @@ -200,18 +203,12 @@ public function getInvalidLoginStringData() } /** - * @group Core - * * @dataProvider getInvalidLoginStringData + * @expectedException \Exception */ public function testCheckInvalidLoginString($toTest) { - try { - Piwik::checkValidLoginString($toTest); - } catch (Exception $e) { - return; - } - $this->fail('Expected exception not raised'); + Piwik::checkValidLoginString($toTest); } /** @@ -231,8 +228,6 @@ public function getValidLoginStringData() } /** - * @group Core - * * @dataProvider getValidLoginStringData */ public function testCheckValidLoginString($toTest) @@ -256,8 +251,6 @@ public function getGetPrettyValueTestCases() } /** - * @group Core - * * @dataProvider getGetPrettyValueTestCases */ public function testGetPrettyValue($columnName, $value, $expected) @@ -265,7 +258,7 @@ public function testGetPrettyValue($columnName, $value, $expected) Translate::loadEnglishTranslation(); $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $idsite = API::getInstance()->addSite("test", "http://test"); @@ -293,8 +286,6 @@ public function getIsAssociativeArrayTestCases() } /** - * @group Core - * * @dataProvider getIsAssociativeArrayTestCases */ public function testIsAssociativeArray($array, $expected) @@ -302,11 +293,18 @@ public function testIsAssociativeArray($array, $expected) $this->assertEquals($expected, Piwik::isAssociativeArray($array)); } - /** - * @group Core - */ public function testCheckIfFileSystemIsNFSOnNonNFS() { $this->assertFalse(Filesystem::checkIfFileSystemIsNFS()); } + + public function test_getConfigSuperUserLogin_ShouldReadSuperUserLoginFromConfig() + { + $this->assertEquals('superusertest', Piwik::getConfigSuperUserLogin()); + } + + public function test_getConfigSuperUserEmail_ShouldReadSuperUserEmailFromConfig() + { + $this->assertEquals('superuser@example.com', Piwik::getConfigSuperUserEmail()); + } } diff --git a/tests/PHPUnit/Integration/Core/Plugin/SettingsTest.php b/tests/PHPUnit/Integration/Core/Plugin/SettingsTest.php index 046b968ebb9..cc1010a604c 100644 --- a/tests/PHPUnit/Integration/Core/Plugin/SettingsTest.php +++ b/tests/PHPUnit/Integration/Core/Plugin/SettingsTest.php @@ -576,7 +576,7 @@ public function test_userSetting_shouldThrowException_IfSomeoneTriesToReadSettin $this->buildUserSetting('myname', 'mytitle', 'myRandomName'); } - public function test_userSetting_shouldBeAbleToSetLoginAndChangeValues_IfUserIsSuperUser() + public function test_userSetting_shouldBeAbleToSetLoginAndChangeValues_IfUserHasSuperUserAccess() { $this->setSuperUser(); diff --git a/tests/PHPUnit/Integration/ImportLogsTest.php b/tests/PHPUnit/Integration/ImportLogsTest.php index 91b390effd6..fa3f3cf1d52 100755 --- a/tests/PHPUnit/Integration/ImportLogsTest.php +++ b/tests/PHPUnit/Integration/ImportLogsTest.php @@ -62,7 +62,7 @@ public function testDynamicResolverSitesCreated() self::$fixture->logVisitsWithDynamicResolver(); // reload access so new sites are viewable - Access::getInstance()->setSuperUser(true); + Access::getInstance()->setSuperUserAccess(true); // make sure sites aren't created twice $piwikDotNet = API::getInstance()->getSitesIdFromSiteUrl('http://piwik.net'); diff --git a/tests/PHPUnit/Integration/Plugins/MultiSitesTest.php b/tests/PHPUnit/Integration/Plugins/MultiSitesTest.php index c46e2ba562a..f2556ccf714 100644 --- a/tests/PHPUnit/Integration/Plugins/MultiSitesTest.php +++ b/tests/PHPUnit/Integration/Plugins/MultiSitesTest.php @@ -24,7 +24,7 @@ public function setUp() parent::setUp(); $access = Access::getInstance(); - $access->setSuperUser(true); + $access->setSuperUserAccess(true); $this->idSiteAccess = APISitesManager::getInstance()->addSite("test", "http://test"); diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php index fad012b28ab..6029540010b 100644 --- a/tests/PHPUnit/TestingEnvironment.php +++ b/tests/PHPUnit/TestingEnvironment.php @@ -11,7 +11,7 @@ class Piwik_MockAccess public function __construct($access) { $this->access = $access; - $access->setSuperUser(true); + $access->setSuperUserAccess(true); } public function __call($name, $arguments)