public static function getAllTablesStatus() { Piwik::checkUserIsSuperUser(); $db = Zend_Registry::get('db'); // http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html $tablesPiwik = Piwik::getTablesInstalled(); $total = array('Name' => 'Total', 'Data_length' => 0, 'Index_length' => 0, 'Rows' => 0); $table = array(); foreach ($tablesPiwik as $tableName) { $t = self::getTableStatus($tableName); $total['Data_length'] += $t['Data_length']; $total['Index_length'] += $t['Index_length']; $total['Rows'] += $t['Rows']; $t['Total_length'] = Piwik::getPrettySizeFromBytes($t['Index_length'] + $t['Data_length']); $t['Data_length'] = Piwik::getPrettySizeFromBytes($t['Data_length']); $t['Index_length'] = Piwik::getPrettySizeFromBytes($t['Index_length']); $t['Rows'] = Piwik::getPrettySizeFromBytes($t['Rows']); $table[] = $t; } $total['Total_length'] = Piwik::getPrettySizeFromBytes($total['Data_length'] + $total['Index_length']); $total['Data_length'] = Piwik::getPrettySizeFromBytes($total['Data_length']); $total['Index_length'] = Piwik::getPrettySizeFromBytes($total['Index_length']); $total['TotalRows'] = Piwik::getPrettySizeFromBytes($total['Rows']); $table['Total'] = $total; return $table; }
public function oneClickUpdate() { Piwik::checkUserIsSuperUser(); $this->newVersion = $this->checkNewVersionIsAvailableOrDie(); Piwik::setMaxExecutionTime(0); $url = Zend_Registry::get('config')->General->latest_version_url; $steps = array(array('oneClick_Download', Piwik_Translate('CoreUpdater_DownloadingUpdateFromX', $url)), array('oneClick_Unpack', Piwik_Translate('CoreUpdater_UnpackingTheUpdate')), array('oneClick_Verify', Piwik_Translate('CoreUpdater_VerifyingUnpackedFiles')), array('oneClick_CreateConfigFileBackup', Piwik_Translate('CoreUpdater_CreatingBackupOfConfigurationFile', self::CONFIG_FILE_BACKUP)), array('oneClick_Copy', Piwik_Translate('CoreUpdater_InstallingTheLatestVersion')), array('oneClick_Finished', Piwik_Translate('CoreUpdater_PiwikUpdatedSuccessfully'))); $errorMessage = false; $messages = array(); foreach ($steps as $step) { try { $method = $step[0]; $message = $step[1]; $this->{$method}(); $messages[] = $message; } catch (Exception $e) { $errorMessage = $e->getMessage(); break; } } $view = Piwik_View::factory('update_one_click_done'); $view->coreError = $errorMessage; $view->feedbackMessages = $messages; echo $view->render(); }
public function setGeneralSettings() { Piwik::checkUserIsSuperUser(); $response = new Piwik_API_ResponseBuilder(Piwik_Common::getRequestVar('format')); try { $this->checkTokenInUrl(); $enableBrowserTriggerArchiving = Piwik_Common::getRequestVar('enableBrowserTriggerArchiving'); $todayArchiveTimeToLive = Piwik_Common::getRequestVar('todayArchiveTimeToLive'); Piwik_ArchiveProcessing::setBrowserTriggerArchiving((bool) $enableBrowserTriggerArchiving); Piwik_ArchiveProcessing::setTodayArchiveTimeToLive($todayArchiveTimeToLive); // Update email settings $mail = Zend_Registry::get('config')->mail; $mail->transport = Piwik_Common::getRequestVar('mailUseSmtp') == '1' ? 'smtp' : ''; $mail->port = Piwik_Common::getRequestVar('mailPort', ''); $mail->host = Piwik_Common::getRequestVar('mailHost', ''); $mail->type = Piwik_Common::getRequestVar('mailType', ''); $mail->username = Piwik_Common::getRequestVar('mailUsername', ''); $mail->password = Piwik_Common::getRequestVar('mailPassword', ''); $mail->encryption = Piwik_Common::getRequestVar('mailEncryption', ''); Zend_Registry::get('config')->mail = $mail->toArray(); $toReturn = $response->getResponse(); } catch (Exception $e) { $toReturn = $response->getResponseException($e); } echo $toReturn; }
function activate() { Piwik::checkUserIsSuperUser(); $pluginName = Piwik_Common::getRequestVar('pluginName', null, 'string'); Piwik_PluginsManager::getInstance()->activatePlugin($pluginName); Piwik_Url::redirectToUrl('index.php?module=CorePluginsAdmin'); }
public function activate() { Piwik::checkUserIsSuperUser(); $this->checkTokenInUrl(); $pluginName = Piwik_Common::getRequestVar('pluginName', null, 'string'); Piwik_PluginsManager::getInstance()->activatePlugin($pluginName); Piwik_Url::redirectToReferer(); }
function index() { Piwik::checkUserIsSuperUser(); $view = Piwik_View::factory('DBStats'); $view->tablesStatus = Piwik_DBStats_API::getInstance()->getAllTablesStatus(); $this->setBasicVariablesView($view); $view->menu = Piwik_GetAdminMenu(); echo $view->render(); }
public function oneClickResults() { Piwik_API_Request::reloadAuthUsingTokenAuth($_POST); Piwik::checkUserIsSuperUser(); $view = Piwik_View::factory('update_one_click_results'); $view->coreError = Piwik_Common::getRequestVar('error', '', 'string', $_POST); $view->feedbackMessages = safe_unserialize(Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('messages', '', 'string', $_POST))); echo $view->render(); }
public function getLastVisits($idSite = false, $limit = 10, $minIdVisit = false) { if (is_null($idSite)) { Piwik::checkUserIsSuperUser(); } else { Piwik::checkUserHasViewAccess($idSite); } $visitorDetails = self::loadLastVisitorDetailsFromDatabase(null, $idSite, $limit, $minIdVisit); $table = self::getCleanedVisitorsFromDetails($visitorDetails); return $table; }
public function generate() { Piwik::checkUserIsSuperUser(); $nonce = Piwik_Common::getRequestVar('form_nonce', '', 'string', $_POST); if(Piwik_Common::getRequestVar('choice', 'no') != 'yes' || !Piwik_Nonce::verifyNonce('Piwik_VisitorGenerator.generate', $nonce)) { Piwik::redirectToModule('VisitorGenerator', 'index'); } Piwik_Nonce::discardNonce('Piwik_VisitorGenerator.generate'); $daysToCompute = Piwik_Common::getRequestVar('daysToCompute', 1, 'int'); // get idSite from POST with fallback to GET $idSite = Piwik_Common::getRequestVar('idSite', false, 'int', $_GET); $idSite = Piwik_Common::getRequestVar('idSite', $idSite, 'int', $_POST); Piwik::setMaxExecutionTime(0); $timer = new Piwik_Timer; $time = time() - ($daysToCompute-1)*86400; // Update site.ts_created if we generate visits on days before the website was created $site = new Piwik_Site($idSite); $minGeneratedDate = Piwik_Date::factory($time); if($minGeneratedDate->isEarlier($site->getCreationDate())) { // direct access to the website table (bad practise but this is a debug / dev plugin) Zend_Registry::get('db')->update(Piwik_Common::prefixTable("site"), array('ts_created' => $minGeneratedDate->getDatetime()), "idsite = $idSite"); } $nbActionsTotal = 0; while($time <= time()) { $nbActionsTotalThisDay = $this->generateVisits($time, $idSite); $time += 86400; $nbActionsTotal += $nbActionsTotalThisDay; } // Init view $view = Piwik_View::factory('generate'); $this->setBasicVariablesView($view); $view->menu = Piwik_GetAdminMenu(); $view->assign('timer', $timer); $view->assign('days', $daysToCompute); $view->assign('nbActionsTotal', $nbActionsTotal); $view->assign('nbRequestsPerSec', round($nbActionsTotal / $timer->getTime(),0)); echo $view->render(); }
public function testAllSizes() { Piwik::checkUserIsSuperUser(); $view = Piwik_View::factory('debug_graphs_all_sizes'); $this->setGeneralVariablesView($view); $period = Piwik_Common::getRequestVar('period', 'day', 'string'); $date = Piwik_Common::getRequestVar('date', 'today', 'string'); $_GET['token_auth'] = Piwik::getCurrentUserTokenAuth(); $availableReports = Piwik_API_API::getInstance()->getReportMetadata($this->idSite, $period, $date); $view->availableReports = $availableReports; $view->graphTypes = array(''); $view->graphSizes = array(array(null, null), array(Piwik_ReportRenderer::IMAGE_GRAPH_WIDTH, Piwik_ReportRenderer::IMAGE_GRAPH_HEIGHT), array(460, 150), array(300, 150), array(240, 150), array(800, 150), array(600, 300, $fontSize = 18, 300, 150)); echo $view->render(); }
/** * Sets the current LocationProvider type. * * Input: * Requires the 'id' query parameter to be set to the desired LocationProvider's ID. * * Output: * Nothing. */ public function setCurrentLocationProvider() { Piwik::checkUserIsSuperUser(); if ($_SERVER["REQUEST_METHOD"] == "POST") { $this->checkTokenInUrl(); $providerId = Piwik_Common::getRequestVar('id'); $provider = Piwik_UserCountry_LocationProvider::setCurrentProvider($providerId); if ($provider === false) { throw new Exception("Invalid provider ID: '{$providerId}'."); } // make sure the tracker will use the new location provider Piwik_Common::regenerateCacheGeneral(); } }
public function setSettings() { $response = new Piwik_API_ResponseBuilder(Piwik_Common::getRequestVar('format')); try { Piwik::checkUserIsSuperUser(); $this->checkTokenInUrl(); $mode = Piwik_Common::getRequestVar('TeraWurflMode'); $url = Piwik_Common::getRequestVar('TeraWurflURL'); $path = Piwik_Common::getRequestVar('TeraWurflPath'); switch ($mode) { case 'TeraWurfl': case 'TeraWurflEnterprise': if (!(file_exists($path) && (require_once $path))) { echo $response->getResponseException(new Exception("Could not save settings: The file " . htmlentities($path) . " does not exist")); return; } elseif (!class_exists($mode)) { echo $response->getResponseException(new Exception("Could not save settings: The file " . htmlentities($path) . " exists but does not contain the required class " . htmlentities($mode))); return; } else { Piwik_MobileAnalytics::saveSetting('TeraWurflMode', $mode); Piwik_MobileAnalytics::saveSetting('TeraWurflPath', $path); } break; case 'TeraWurflRemoteClient': require_once PIWIK_INCLUDE_PATH . '/plugins/MobileAnalytics/TeraWurflRemoteClient.php'; try { $this->wurflObj = new TeraWurflRemoteClient($url); @$this->wurflObj->getCapabilitiesFromAgent(null, Piwik_MobileAnalytics::$requiredCapabilities); } catch (Exception $e) { echo $response->getResponseException(new Exception("Could not save settings: A request to the Tera-WURFL web service (" . htmlentities($url) . ") failed.")); return; } Piwik_MobileAnalytics::saveSetting('TeraWurflURL', $url); Piwik_MobileAnalytics::saveSetting('TeraWurflMode', $mode); break; default: case 'disabled': Piwik_MobileAnalytics::saveSetting('TeraWurflMode', 'disabled'); break; } echo $response->getResponse(); } catch (Exception $e) { echo $response->getResponseException($e); } }
function index() { Piwik::checkUserIsSuperUser(); require_once dirname(__FILE__) . '/PhpSecInfo/PhpSecInfo.php'; // instantiate the class $psi = new PhpSecInfo(); // load and run all tests $psi->loadAndRun(); // grab the results as a multidimensional array $results = $psi->getResultsAsArray(); // suppress results unset($results['test_results']['Core']['memory_limit']); unset($results['test_results']['Core']['post_max_size']); unset($results['test_results']['Core']['upload_max_filesize']); $view = Piwik_View::factory('index'); $this->setGeneralVariablesView($view); $view->menu = Piwik_GetAdminMenu(); $view->results = $results; echo $view->render(); }
protected function getDeleteLogsInfo() { Piwik::checkUserIsSuperUser(); $deleteLogsInfos = array(); $taskScheduler = new Piwik_TaskScheduler(); $deleteLogsInfos["config"] = Zend_Registry::get('config')->Deletelogs->toArray(); $privacyManager = new Piwik_PrivacyManager(); $deleteLogsInfos["deleteTables"] = implode(", ", $privacyManager->getDeleteTableLogTables()); $scheduleTimetable = $taskScheduler->getScheduledTimeForTask("Piwik_PrivacyManager", "deleteLogTables"); $optionTable = Piwik_GetOption(self::OPTION_LAST_DELETE_PIWIK_LOGS); //If task was already rescheduled, read time from taskTimetable. Else, calculate next possible runtime. if (!empty($scheduleTimetable) && $scheduleTimetable - time() > 0) { $nextPossibleSchedule = (int) $scheduleTimetable; } else { $date = Piwik_Date::factory("today"); $nextPossibleSchedule = $date->addDay(1)->getTimestamp(); } //deletion schedule did not run before if (empty($optionTable)) { $deleteLogsInfos["lastRun"] = false; //next run ASAP (with next schedule run) $date = Piwik_Date::factory("today"); $deleteLogsInfos["nextScheduleTime"] = $nextPossibleSchedule; } else { $deleteLogsInfos["lastRun"] = $optionTable; $deleteLogsInfos["lastRunPretty"] = Piwik_Date::factory((int) $optionTable)->getLocalized('%day% %shortMonth% %longYear%'); //Calculate next run based on last run + interval $nextScheduleRun = (int) ($deleteLogsInfos["lastRun"] + $deleteLogsInfos["config"]["delete_logs_schedule_lowest_interval"] * 24 * 60 * 60); //is the calculated next run in the past? (e.g. plugin was disabled in the meantime or something) -> run ASAP if ($nextScheduleRun - time() <= 0) { $deleteLogsInfos["nextScheduleTime"] = $nextPossibleSchedule; } else { $deleteLogsInfos["nextScheduleTime"] = $nextScheduleRun; } } $deleteLogsInfos["nextRunPretty"] = Piwik::getPrettyTimeFromSeconds($deleteLogsInfos["nextScheduleTime"] - time()); return $deleteLogsInfos; }
public function oneClickUpdate() { Piwik::checkUserIsSuperUser(); $this->checkNewVersionIsAvailableOrDie(); $steps = array(array('oneClick_Download', Piwik_Translate('CoreUpdate_DownloadingUpdateFromX', self::LATEST_PIWIK_URL)), array('oneClick_Unpack', Piwik_Translate('CoreUpdate_UnpackingTheUpdate')), array('oneClick_Verify', Piwik_Translate('CoreUpdater_VerifyingUnpackedFiles')), array('oneClick_CreateConfigFileBackup', Piwik_Translate('CoreUpdater_CreatingBackupOfConfigurationFile', self::CONFIG_FILE_BACKUP)), array('oneClick_Copy', Piwik_Translate('CoreUpdater_InstallingTheLatestVersion')), array('oneClick_Finished', Piwik_Translate('CoreUpdater_PiwikUpdatedSuccessfully'))); $errorMessage = false; $messages = array(); foreach ($steps as $step) { try { $method = $step[0]; $message = $step[1]; $this->{$method}(); $messages[] = $message; } catch (Exception $e) { $errorMessage = $e->getMessage(); break; } } $view = new Piwik_View('CoreUpdater/templates/update_one_click_done.tpl'); $view->coreError = $errorMessage; $view->feedbackMessages = $messages; echo $view->render(); }
/** * Returns a datatable describing how much total space is taken up by each * individual metric type. * * Goal metrics, metrics of the format .*_[0-9]+ and 'done...' metrics are grouped together. * * @param bool $forceCache false to use the cached result, true to run the queries again and * cache the result. * @return Piwik_DataTable A datatable with three columns: 'data_size', 'index_size', 'row_count'. */ public function getIndividualMetricsSummary($forceCache = false) { Piwik::checkUserIsSuperUser(); return $this->metadataProvider->getRowCountsAndSizeByMetricName($forceCache); }
/** * Check that current user is either the specified user or the superuser * * @param string $theUser * @throws exception if the user is neither the super user nor the user $theUser */ public static function checkUserIsSuperUserOrTheUser($theUser) { try { if (Piwik::getCurrentUserLogin() !== $theUser) { // or to the super user Piwik::checkUserIsSuperUser(); } } catch (Piwik_Access_NoAccessException $e) { throw new Piwik_Access_NoAccessException(Piwik_Translate('General_ExceptionCheckUserIsSuperUserOrTheUser', array($theUser))); } }
public function generate() { // Only admin is allowed to do this! Piwik::checkUserIsSuperUser(); $GET = $_GET; $POST = $_POST; $COOKIE = $_COOKIE; $REQUEST = $_REQUEST; $nonce = Piwik_Common::getRequestVar('form_nonce', '', 'string', $_POST); if (Piwik_Common::getRequestVar('choice', 'no') != 'yes' || !Piwik_Nonce::verifyNonce('Piwik_VisitorGenerator.generate', $nonce)) { Piwik::redirectToModule('VisitorGenerator', 'index'); } Piwik_Nonce::discardNonce('Piwik_VisitorGenerator.generate'); $minVisitors = Piwik_Common::getRequestVar('minVisitors', 20, 'int'); $maxVisitors = Piwik_Common::getRequestVar('maxVisitors', 100, 'int'); $nbActions = Piwik_Common::getRequestVar('nbActions', 10, 'int'); $daysToCompute = Piwik_Common::getRequestVar('daysToCompute', 1, 'int'); // get idSite from POST with fallback to GET $idSite = Piwik_Common::getRequestVar('idSite', false, 'int', $_GET); $idSite = Piwik_Common::getRequestVar('idSite', $idSite, 'int', $_POST); Piwik::setMaxExecutionTime(0); $loadedPlugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins(); $loadedPlugins = array_keys($loadedPlugins); // we have to unload the Provider plugin otherwise it tries to lookup the IP for a hostname, and there is no dns server here if (Piwik_PluginsManager::getInstance()->isPluginActivated('Provider')) { Piwik_PluginsManager::getInstance()->unloadPlugin('Provider'); } // we set the DO NOT load plugins so that the Tracker generator doesn't load the plugins we've just disabled. // if for some reasons you want to load the plugins, comment this line, and disable the plugin Provider in the plugins interface Piwik_PluginsManager::getInstance()->doNotLoadPlugins(); $generator = new Piwik_VisitorGenerator_Generator(); $generator->setMaximumUrlDepth(3); //$generator->disableProfiler(); $generator->setIdSite($idSite); $nbActionsTotal = 0; //$generator->emptyAllLogTables(); $generator->init(); $timer = new Piwik_Timer(); $startTime = time() - ($daysToCompute - 1) * 86400; // Update site.ts_created if we generate visits on days before the website was created $site = new Piwik_Site($idSite); $minGeneratedDate = Piwik_Date::factory($startTime); if ($minGeneratedDate->isEarlier($site->getCreationDate())) { // direct access to the website table (bad practise but this is a debug / dev plugin) Zend_Registry::get('db')->update(Piwik_Common::prefixTable("site"), array('ts_created' => $minGeneratedDate->getDatetime()), "idsite = {$idSite}"); } $dates = array(); while ($startTime <= time()) { $visitors = rand($minVisitors, $maxVisitors); $actions = $nbActions; $generator->setTimestampToUse($startTime); $nbActionsTotalThisDay = $generator->generate($visitors, $actions); $actionsPerVisit = round($nbActionsTotalThisDay / $visitors); $date = array(); $date['visitors'] = $visitors; $date['actionsPerVisit'] = $actionsPerVisit; $date['startTime'] = $startTime; $dates[] = $date; $startTime += 86400; $nbActionsTotal += $nbActionsTotalThisDay; //sleep(1); } $generator->end(); // Recover all super globals $_GET = $GET; $_POST = $POST; $_COOKIE = $COOKIE; $_REQUEST = $REQUEST; // Reload plugins Piwik_PluginsManager::getInstance()->loadPlugins($loadedPlugins); // Init view $view = Piwik_View::factory('generate'); $this->setBasicVariablesView($view); $view->menu = Piwik_GetAdminMenu(); $view->assign('dates', $dates); $view->assign('timer', $timer); $view->assign('nbActionsTotal', $nbActionsTotal); $view->assign('nbRequestsPerSec', round($nbActionsTotal / $timer->getTime(), 0)); echo $view->render(); }
/** * Delete a website from the database, given its Id. * * Requires Super User access. * * @param int $idSite */ public static function deleteSite($idSite) { Piwik::checkUserIsSuperUser(); $idSites = Piwik_SitesManager_API::getAllSitesId(); if (!in_array($idSite, $idSites)) { throw new Exception("website id = {$idSite} not found"); } $nbSites = count($idSites); if ($nbSites == 1) { throw new Exception(Piwik_TranslateException("SitesManager_ExceptionDeleteSite")); } $db = Zend_Registry::get('db'); $db->query("DELETE FROM " . Piwik::prefixTable("site") . " \n\t\t\t\t\tWHERE idsite = ?", $idSite); $db->query("DELETE FROM " . Piwik::prefixTable("site_url") . " \n\t\t\t\t\tWHERE idsite = ?", $idSite); $db->query("DELETE FROM " . Piwik::prefixTable("access") . " \n\t\t\t\t\tWHERE idsite = ?", $idSite); Piwik_Common::deleteCacheWebsiteAttributes($idSite); }
public function uploadCustomLogo() { Piwik::checkUserIsSuperUser(); if (empty($_FILES['customLogo']) || !empty($_FILES['customLogo']['error'])) { echo '0'; return; } $file = $_FILES['customLogo']['tmp_name']; if (!file_exists($file)) { echo '0'; return; } $error = false; list($width, $height) = getimagesize($file); switch ($_FILES['customLogo']['type']) { case 'image/jpeg': $image = imagecreatefromjpeg($file); break; case 'image/png': $image = imagecreatefrompng($file); break; case 'image/gif': $image = imagecreatefromgif($file); break; default: echo '0'; return; } $widthExpected = round($width * self::LOGO_HEIGHT / $height); $smallWidthExpected = round($width * self::LOGO_SMALL_HEIGHT / $height); $logo = imagecreatetruecolor($widthExpected, self::LOGO_HEIGHT); $logoSmall = imagecreatetruecolor($smallWidthExpected, self::LOGO_SMALL_HEIGHT); imagecopyresized($logo, $image, 0, 0, 0, 0, $widthExpected, self::LOGO_HEIGHT, $width, $height); imagecopyresized($logoSmall, $image, 0, 0, 0, 0, $smallWidthExpected, self::LOGO_SMALL_HEIGHT, $width, $height); imagepng($logo, PIWIK_DOCUMENT_ROOT . '/themes/logo.png', 3); imagepng($logoSmall, PIWIK_DOCUMENT_ROOT . '/themes/logo-header.png', 3); echo '1'; return; }
public function index() { Piwik::checkUserIsSuperUser(); $view = $this->getDefaultIndexView(); echo $view->render(); }
public function getPageImpressionsInLastXMin($idSite = false, $limit = 10, $minIdVisit = false, $minutes = 30) { if (is_null($idSite)) { Piwik::checkUserIsSuperUser(); } else { Piwik::checkUserHasViewAccess($idSite); } // $pageDetails = $this->loadLastVisitedPagesInLastXMinFromDatabase(null, $idSite, $limit, $minIdVisit, $minutes); $pageDetails = $this->loadLastVisitorInLastXTimeFromDatabase(null, $idSite, $limit, $minIdVisit, $minutes, 0, 2); $i = -1; foreach ($pageDetails as $detail) { $i++; if (strlen($pageDetails[$i]['name']) > 30) { $pageDetails[$i]['name'] = substr($pageDetails[$i]['name'], 0, 30 - 3) . '...'; } } return $pageDetails; }
/** * @param string $theUser * @throws exception if the user is neither the super user nor the user $theUser */ public static function checkUserIsSuperUserOrTheUser($theUser) { try { if (Piwik::getCurrentUserLogin() !== $theUser) { // or to the super user Piwik::checkUserIsSuperUser(); } } catch (Piwik_Access_NoAccessException $e) { throw new Piwik_Access_NoAccessException("The user has to be either the Super User or the user '{$theUser}' itself."); } }
/** * Specify if normal users can manage their own SMS API credential * * @param bool $delegatedManagement false if SMS API credential only manageable by super admin, true otherwise */ public function setDelegatedManagement($delegatedManagement) { Piwik::checkUserIsSuperUser(); Piwik_SetOption(Piwik_MobileMessaging::DELEGATED_MANAGEMENT_OPTION, $delegatedManagement); }
/** * Records settings for the anonymous users (default report, default date) */ public function recordAnonymousUserSettings() { $response = new Piwik_API_ResponseBuilder(Piwik_Common::getRequestVar('format')); try { Piwik::checkUserIsSuperUser(); $this->checkTokenInUrl(); $anonymousDefaultReport = Piwik_Common::getRequestVar('anonymousDefaultReport'); $anonymousDefaultDate = Piwik_Common::getRequestVar('anonymousDefaultDate'); $userLogin = '******'; Piwik_UsersManager_API::getInstance()->setUserPreference($userLogin, Piwik_UsersManager_API::PREFERENCE_DEFAULT_REPORT, $anonymousDefaultReport); Piwik_UsersManager_API::getInstance()->setUserPreference($userLogin, Piwik_UsersManager_API::PREFERENCE_DEFAULT_REPORT_DATE, $anonymousDefaultDate); $toReturn = $response->getResponse(); } catch(Exception $e ) { $toReturn = $response->getResponseException( $e ); } echo $toReturn; }
/** * Returns the list of unique timezones from all configured sites. * * @return array ( string ) */ public function getUniqueSiteTimezones() { Piwik::checkUserIsSuperUser(); $results = Piwik_FetchAll("SELECT distinct timezone FROM ".Piwik_Common::prefixTable('site')); $timezones = array(); foreach($results as $result) { $timezones[] = $result['timezone']; } return $timezones; }
} $GLOBALS['PIWIK_TRACKER_DEBUG'] = false; ob_start(); // first check that user has privileges to create some random data in the DB -> he must be super user define('PIWIK_ENABLE_DISPATCH', false); require_once PIWIK_INCLUDE_PATH . "/index.php"; require_once "FrontController.php"; Piwik::setMaxExecutionTime(0); $idSite = Piwik_Common::getRequestVar('idSite', 1, 'int'); try { Piwik_FrontController::getInstance()->init(); } catch (Exception $e) { echo $e->getMessage(); exit; } Piwik::checkUserIsSuperUser(); require_once "PluginsManager.php"; require_once "Tracker.php"; //Piwik_PluginsManager::getInstance()->unloadPlugins(); // we have to unload the Provider plugin otherwise it tries to lookup the IP for ahostname, and there is no dns server here if (Piwik_PluginsManager::getInstance()->isPluginActivated('Provider')) { Piwik_PluginsManager::getInstance()->unloadPlugin('Provider'); } // we set the DO NOT load plugins so that the Tracker generator doesn't load the plugins we've just disabled. // if for some reasons you want to load the plugins, comment this line, and disable the plugin Provider in the plugins interface Piwik_PluginsManager::getInstance()->doNotLoadPlugins(); $generator = new Piwik_Tracker_Generator(); $generator->setMaximumUrlDepth(3); //$generator->disableProfiler(); $generator->setIdSite($idSite); $nbActionsTotal = 0;
/** * Shows a datatable that displays the amount of space each 'admin' table takes * up in the MySQL database. * * An 'admin' table is a table that is not central to analytics functionality. * So any table that isn't an archive table or a log table is an 'admin' table. * * @param bool $fetch If true, the rendered HTML datatable is returned, otherwise, * it is echoed. */ public function getAdminDataSummary($fetch = false) { Piwik::checkUserIsSuperUser(); $view = $this->getDataTableView(__FUNCTION__, $viewType = 'table'); $view->disableOffsetInformationAndPaginationControls(); return $this->renderView($view, $fetch); }
/** * Delete a user and all its access, given its login. * * @param string $userLogin the user login. * * @throws Exception if the user doesn't exist * * @return bool true on success */ public function deleteUser($userLogin) { Piwik::checkUserIsSuperUser(); $this->checkUserIsNotAnonymous($userLogin); $this->checkUserIsNotSuperUser($userLogin); if (!$this->userExists($userLogin)) { throw new Exception(Piwik_TranslateException("UsersManager_ExceptionDeleteDoesNotExist", $userLogin)); } $this->deleteUserOnly($userLogin); $this->deleteUserAccess($userLogin); Piwik_Common::deleteTrackerCache(); }
public function getKnownSegmentsToArchive() { Piwik::checkUserIsSuperUser(); return Piwik::getKnownSegmentsToArchive(); }