/** * Sets the name of the user this setting will be set for. * * @param $userLogin * @throws \Exception If the current user does not have permission to set the setting value * of `$userLogin`. */ public function setUserLogin($userLogin) { if (!empty($userLogin) && !Piwik::isUserIsSuperUserOrTheUser($userLogin)) { throw new \Exception('You do not have the permission to read the settings of a different user'); } $this->userLogin = $userLogin; $this->key = $this->buildUserSettingName($this->name, $userLogin); }
/** * Returns the list of websites ID with the 'view' or 'admin' access for the current user. * For the superUser it returns all the websites in the database. * * @param bool $_restrictSitesToLogin * @return array list of websites ID */ public function getSitesIdWithAtLeastViewAccess($_restrictSitesToLogin = false) { if (Piwik::isUserIsSuperUser() && !TaskScheduler::isTaskBeingExecuted()) { return Access::getInstance()->getSitesIdWithAtLeastViewAccess(); } if (!empty($_restrictSitesToLogin) && (Piwik::isUserIsSuperUserOrTheUser($_restrictSitesToLogin) || TaskScheduler::isTaskBeingExecuted())) { $accessRaw = Access::getInstance()->getRawSitesWithSomeViewAccess($_restrictSitesToLogin); $sitesId = array(); foreach ($accessRaw as $access) { $sitesId[] = $access['idsite']; } return $sitesId; } else { return Access::getInstance()->getSitesIdWithAtLeastViewAccess(); } }