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 <benaka.moorthi@gmail.com>2013-04-08 06:20:11 +0400
committerdiosmosis <benaka.moorthi@gmail.com>2013-04-08 06:20:11 +0400
commit0e35cd6d9e667fcf9b79ca9437c93f83f9d176d2 (patch)
treefffc51fae35b41d0adf3c63d84a82340b477cbab /plugins/UsersManager
parentb8a603b62d9b11af74c6999689711641c9f16352 (diff)
Fixes #3781, make sure getUserPreference returns valid default value when option is not set in the DB.
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r--plugins/UsersManager/API.php26
1 files changed, 22 insertions, 4 deletions
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 340fb97961..7a0b992b64 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -24,6 +24,9 @@
*/
class Piwik_UsersManager_API
{
+ const PREFERENCE_DEFAULT_REPORT = 'defaultReport';
+ const PREFERENCE_DEFAULT_REPORT_DATE = 'defaultReportDate';
+
static private $instance = null;
/**
@@ -52,9 +55,6 @@ class Piwik_UsersManager_API
return self::$instance;
}
- const PREFERENCE_DEFAULT_REPORT = 'defaultReport';
- const PREFERENCE_DEFAULT_REPORT_DATE = 'defaultReportDate';
-
/**
* Sets a user preference
* @param string $userLogin
@@ -77,13 +77,31 @@ class Piwik_UsersManager_API
public function getUserPreference($userLogin, $preferenceName)
{
Piwik::checkUserIsSuperUserOrTheUser($userLogin);
- return Piwik_GetOption($this->getPreferenceId($userLogin, $preferenceName));
+
+ $optionValue = Piwik_GetOption($this->getPreferenceId($userLogin, $preferenceName));
+ if ($optionValue === false) {
+ return $this->getDefaultUserPreference($userLogin, $preferenceName);
+ }
+ return $optionValue;
}
private function getPreferenceId($login, $preference)
{
return $login . '_' . $preference;
}
+
+ private function getDefaultUserPreference($login, $preferenceName)
+ {
+ switch ($preferenceName) {
+ case self::PREFERENCE_DEFAULT_REPORT:
+ $viewableSiteIds = Piwik_SitesManager_API::getInstance()->getSitesIdWithAtLeastViewAccess($login);
+ return reset($viewableSiteIds);
+ case self::PREFERENCE_DEFAULT_REPORT_DATE:
+ return 'yesterday';
+ default:
+ return false;
+ }
+ }
/**
* Returns the list of all the users