From 5879fbd3746e142f36351d5392b584c6f5ac8fdb Mon Sep 17 00:00:00 2001 From: diosmosis <benaka.moorthi@gmail.com> Date: Mon, 8 Apr 2013 05:22:43 +0000 Subject: [PATCH] Refs #3781, fixing build, revert last change and add getSuperUserLogin to Piwik_Access (so FakeAccess can mock it). Modified PDFReports to use Piwik::getSuperUserLogin instead of accessing config directly. --- core/Access.php | 11 +++++++++++ core/Piwik.php | 3 +-- plugins/PDFReports/API.php | 2 +- plugins/PDFReports/PDFReports.php | 2 +- plugins/UsersManager/API.php | 2 +- tests/PHPUnit/FakeAccess.php | 6 ++++++ .../Integration/ManyVisitorsOneWebsiteTest.php | 11 +++++++++++ tests/PHPUnit/IntegrationTestCase.php | 3 --- tests/PHPUnit/Plugins/UsersManagerTest.php | 1 + 9 files changed, 33 insertions(+), 8 deletions(-) diff --git a/core/Access.php b/core/Access.php index 722595aecb..30cb7a656c 100644 --- a/core/Access.php +++ b/core/Access.php @@ -231,6 +231,17 @@ class Piwik_Access { return $this->token_auth; } + + /** + * Returns the super user's login. + * + * @return string + */ + public function getSuperUserLogin() + { + $superuser = Piwik_Config::getInstance()->superuser; + return $superuser['login']; + } /** * Returns an array of ID sites for which the user has at least a VIEW access. diff --git a/core/Piwik.php b/core/Piwik.php index 171a8fa7e2..961f561a4e 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -1569,8 +1569,7 @@ class Piwik */ static public function getSuperUserLogin() { - $superuser = Piwik_Config::getInstance()->superuser; - return $superuser['login']; + return Zend_Registry::get('access')->getSuperUserLogin(); } /** diff --git a/plugins/PDFReports/API.php b/plugins/PDFReports/API.php index 373b19fe0f..b57c05d5dc 100644 --- a/plugins/PDFReports/API.php +++ b/plugins/PDFReports/API.php @@ -351,7 +351,7 @@ class Piwik_PDFReports_API // is enforced in Scheduled tasks, and ensure Multisites.getAll only return the websites that this user can access $userLogin = $report['login']; if (!empty($userLogin) - && $userLogin != Piwik_Config::getInstance()->superuser['login'] + && $userLogin != Piwik::getSuperUserLogin() ) { $_GET['_restrictSitesToLogin'] = $userLogin; } diff --git a/plugins/PDFReports/PDFReports.php b/plugins/PDFReports/PDFReports.php index 5f295b8366..6a0ead9469 100644 --- a/plugins/PDFReports/PDFReports.php +++ b/plugins/PDFReports/PDFReports.php @@ -371,7 +371,7 @@ class Piwik_PDFReports extends Piwik_Plugin if ($reportParameters[self::EMAIL_ME_PARAMETER] == 1) { if (Piwik::getCurrentUserLogin() == $report['login']) { $emails[] = Piwik::getCurrentUserEmail(); - } elseif ($report['login'] == Piwik_Config::getInstance()->superuser['login']) { + } elseif ($report['login'] == Piwik::getSuperUserLogin()) { $emails[] = Piwik::getSuperUserEmail(); } else { try { diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php index 7a0b992b64..3edc46bec4 100644 --- a/plugins/UsersManager/API.php +++ b/plugins/UsersManager/API.php @@ -601,7 +601,7 @@ class Piwik_UsersManager_API private function checkUserIsNotSuperUser($userLogin) { - if ($userLogin == Piwik_Config::getInstance()->superuser['login']) { + if ($userLogin == Piwik::getSuperUserLogin()) { throw new Exception(Piwik_TranslateException("UsersManager_ExceptionSuperUser")); } } diff --git a/tests/PHPUnit/FakeAccess.php b/tests/PHPUnit/FakeAccess.php index 2f2dba4043..5b14a25c41 100644 --- a/tests/PHPUnit/FakeAccess.php +++ b/tests/PHPUnit/FakeAccess.php @@ -14,6 +14,7 @@ class FakeAccess public static $idSitesAdmin = array(); public static $idSitesView = array(); public static $identity = 'superUserLogin'; + public static $superUserLogin = 'superUserLogin'; public function __construct() { @@ -155,4 +156,9 @@ class FakeAccess } return $result; } + + public function getSuperUserLogin() + { + return self::$superUserLogin; + } } diff --git a/tests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php b/tests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php index 677c5c3ff7..0c01c81f8f 100755 --- a/tests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php +++ b/tests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php @@ -73,6 +73,17 @@ class Test_Piwik_Integration_ManyVisitorsOneWebsiteTest extends IntegrationTestC 'periods' => array('month'), 'otherRequestParameters' => array('ip' => '194.57.91.215') )), + + // test filter_sort_column w/ processed metric + array('API.getProcessedReport', array('idSite' => $idSite, + 'date' => $dateTime, + 'periods' => 'day', + 'apiModule' => 'UserCountry', + 'apiAction' => 'getCity', + 'testSuffix' => '_filterSortProcessed', + 'otherRequestParameters' => array( + //'filter_sort_column' => 'bounce_rate' + ))), ); } } diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php index 8647ea4c56..b3f25de242 100755 --- a/tests/PHPUnit/IntegrationTestCase.php +++ b/tests/PHPUnit/IntegrationTestCase.php @@ -146,9 +146,6 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase // Usually these modules either return random changing data, or are already tested in specific unit tests. self::setApiNotToCall(self::$defaultApiNotToCall); self::setApiToCall(array()); - - // set config superuser login to test login - Piwik_Config::getInstance()->superuser['login'] = 'superUserLogin'; } public static function tearDownAfterClass() diff --git a/tests/PHPUnit/Plugins/UsersManagerTest.php b/tests/PHPUnit/Plugins/UsersManagerTest.php index 48d3f17390..ee36e68751 100644 --- a/tests/PHPUnit/Plugins/UsersManagerTest.php +++ b/tests/PHPUnit/Plugins/UsersManagerTest.php @@ -21,6 +21,7 @@ class UsersManagerTest extends DatabaseTestCase //finally we set the user as a super user by default FakeAccess::$superUser = true; + FakeAccess::$superUserLogin = 'superusertest'; Zend_Registry::set('access', $pseudoMockAccess); // we make sure the tests don't depend on the config file content -- GitLab