diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php index 2281f36513eeee13cb23e4812c2e4fc53c9e84ed..751e61dbbc8208d87457e821dd3cf74544e784bc 100644 --- a/plugins/UsersManager/API.php +++ b/plugins/UsersManager/API.php @@ -66,10 +66,12 @@ class API extends \Piwik\Plugin\API throw new Exception('UsersManager_API must inherit API'); } self::$instance = $instance; + } catch (Exception $e) { self::$instance = new self; \Piwik\Registry::set('UsersManager_API', self::$instance); } + return self::$instance; } @@ -97,9 +99,11 @@ class API extends \Piwik\Plugin\API Piwik::checkUserHasSuperUserAccessOrIsTheUser($userLogin); $optionValue = Option::get($this->getPreferenceId($userLogin, $preferenceName)); + if ($optionValue !== false) { return $optionValue; } + return $this->getDefaultUserPreference($preferenceName, $userLogin); } @@ -217,6 +221,7 @@ class API extends \Piwik\Plugin\API } $logins = implode(',', $logins); + return $this->getUsers($logins); } @@ -300,6 +305,7 @@ class API extends \Piwik\Plugin\API if (empty($alias)) { $alias = $userLogin; } + return $alias; } @@ -326,6 +332,7 @@ class API extends \Piwik\Plugin\API $this->checkEmail($email); $password = Common::unsanitizeInputValue($password); + if (!$_isPasswordHashed) { UsersManager::checkPassword($password); @@ -398,10 +405,12 @@ class API extends \Piwik\Plugin\API Piwik::checkUserIsNotAnonymous(); $users = $this->model->getUsersHavingSuperUserAccess(); + foreach($users as &$user) { // remove token_auth in API response unset($user['token_auth']); } + return $users; } @@ -475,6 +484,7 @@ class API extends \Piwik\Plugin\API { Piwik::checkUserHasSuperUserAccess(); $this->checkUserIsNotAnonymous($userLogin); + if (!$this->userExists($userLogin)) { throw new Exception(Piwik::translate("UsersManager_ExceptionDeleteDoesNotExist", $userLogin)); } @@ -662,6 +672,7 @@ class API extends \Piwik\Plugin\API if (strlen($md5Password) != 32) { throw new Exception(Piwik::translate('UsersManager_ExceptionPasswordMD5HashExpected')); } + return md5($userLogin . $md5Password); } } diff --git a/plugins/UsersManager/Controller.php b/plugins/UsersManager/Controller.php index d22240b977c495e3fe4222d7689b64b62a6b2226..67af39bab5276ec0e2c02b697681a6c2fd87e23d 100644 --- a/plugins/UsersManager/Controller.php +++ b/plugins/UsersManager/Controller.php @@ -122,6 +122,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin private function hasAnonymousUserViewAccess($usersAccessByWebsite) { $anonymousHasViewAccess = false; + foreach ($usersAccessByWebsite as $login => $access) { if ($login == 'anonymous' && $access != 'noaccess' @@ -129,6 +130,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin $anonymousHasViewAccess = true; } } + return $anonymousHasViewAccess; } diff --git a/plugins/UsersManager/Model.php b/plugins/UsersManager/Model.php index 1729d51c7d4566ea1d04ff50a17d5f1bf7316cab..3d69f0ab1477241a589f55605143e5ff70dff67c 100644 --- a/plugins/UsersManager/Model.php +++ b/plugins/UsersManager/Model.php @@ -149,20 +149,17 @@ class Model public function getUser($userLogin) { - return $this->getDb()->fetchRow("SELECT * FROM " . $this->table - . " WHERE login = ?", $userLogin); + return $this->getDb()->fetchRow("SELECT * FROM " . $this->table . " WHERE login = ?", $userLogin); } public function getUserByEmail($userEmail) { - return $this->getDb()->fetchRow("SELECT * FROM " . $this->table - . " WHERE email = ?", $userEmail); + return $this->getDb()->fetchRow("SELECT * FROM " . $this->table . " WHERE email = ?", $userEmail); } public function getUserByTokenAuth($tokenAuth) { - return $this->getDb()->fetchRow('SELECT * FROM ' . $this->table . ' - WHERE token_auth = ?', $tokenAuth); + return $this->getDb()->fetchRow('SELECT * FROM ' . $this->table . ' WHERE token_auth = ?', $tokenAuth); } public function addUser($userLogin, $passwordTransformed, $email, $alias, $tokenAuth, $dateRegistered) @@ -193,7 +190,7 @@ class Model /** * Note that this returns the token_auth which is as private as the password! * - * @return returns login, email and token_auth + * @return array[] containing login, email and token_auth */ public function getUsersHavingSuperUserAccess() { @@ -220,15 +217,15 @@ class Model public function userExists($userLogin) { - $count = $this->getDb()->fetchOne("SELECT count(*) FROM " . $this->table . " - WHERE login = ?", $userLogin); + $count = $this->getDb()->fetchOne("SELECT count(*) FROM " . $this->table . " WHERE login = ?", $userLogin); + return $count != 0; } public function userEmailExists($userEmail) { - $count = $this->getDb()->fetchOne("SELECT count(*) FROM " . $this->table . " - WHERE email = ?", $userEmail); + $count = $this->getDb()->fetchOne("SELECT count(*) FROM " . $this->table . " WHERE email = ?", $userEmail); + return $count != 0; } diff --git a/plugins/UsersManager/UserPreferences.php b/plugins/UsersManager/UserPreferences.php index ef77f80e22dba78d8b546e625b86324d5746dc0f..430d2b8b659ac801a0e51ecbb3035eb87a2f925f 100644 --- a/plugins/UsersManager/UserPreferences.php +++ b/plugins/UsersManager/UserPreferences.php @@ -84,6 +84,7 @@ class UserPreferences ) { return $userSettingsDate; } + return 'today'; } @@ -96,17 +97,21 @@ class UserPreferences public function getDefaultPeriod() { $userSettingsDate = APIUsersManager::getInstance()->getUserPreference(Piwik::getCurrentUserLogin(), APIUsersManager::PREFERENCE_DEFAULT_REPORT_DATE); + if ($userSettingsDate === false) { return Config::getInstance()->General['default_period']; } + if (in_array($userSettingsDate, array('today', 'yesterday'))) { return 'day'; } + if (strpos($userSettingsDate, 'last') === 0 || strpos($userSettingsDate, 'previous') === 0 ) { return 'range'; } + return $userSettingsDate; } } \ No newline at end of file