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 = array();
         $mail['transport'] = Piwik_Common::getRequestVar('mailUseSmtp') == '1' ? 'smtp' : '';
         $mail['port'] = Piwik_Common::getRequestVar('mailPort', '');
         $mail['host'] = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailHost', ''));
         $mail['type'] = Piwik_Common::getRequestVar('mailType', '');
         $mail['username'] = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailUsername', ''));
         $mail['password'] = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailPassword', ''));
         $mail['encryption'] = Piwik_Common::getRequestVar('mailEncryption', '');
         Piwik_Config::getInstance()->mail = $mail;
         // update branding settings
         Piwik_Config::getInstance()->branding['use_custom_logo'] = Piwik_Common::getRequestVar('useCustomLogo', '0');
         $toReturn = $response->getResponse();
     } catch (Exception $e) {
         $toReturn = $response->getResponseException($e);
     }
     echo $toReturn;
 }
Exemple #2
0
 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;
 }
Exemple #3
0
 public function setUp()
 {
     $dumpPath = PIWIK_INCLUDE_PATH . '/tmp/logdump.sql.gz';
     $deflatedDumpPath = PIWIK_INCLUDE_PATH . '/tmp/logdump.sql';
     $bufferSize = 1024 * 1024;
     // drop all tables
     Piwik::dropTables();
     // download data dump
     $dump = fopen(self::$dumpUrl, 'rb');
     $outfile = fopen($dumpPath, 'wb');
     $bytesRead = 0;
     while (!feof($dump)) {
         fwrite($outfile, fread($dump, $bufferSize), $bufferSize);
         $bytesRead += $bufferSize;
     }
     fclose($dump);
     fclose($outfile);
     if ($bytesRead <= 40 * 1024 * 1024) {
         throw new Exception("Could not download sql dump!");
     }
     // unzip the dump
     exec("gunzip -c \"" . $dumpPath . "\" > \"{$deflatedDumpPath}\"", $output, $return);
     if ($return !== 0) {
         throw new Exception("gunzip failed: " . implode("\n", $output));
     }
     // load the data into the correct database
     $user = Piwik_Config::getInstance()->database['username'];
     $password = Piwik_Config::getInstance()->database['password'];
     $dbName = Piwik_Config::getInstance()->database['dbname'];
     Piwik_Config::getInstance()->database['tables_prefix'] = 'piwik_';
     Piwik_Common::$cachedTablePrefix = null;
     exec("mysql -u \"{$user}\" \"--password={$password}\" {$dbName} < \"" . $deflatedDumpPath . "\" 2>&1", $output, $return);
     if ($return !== 0) {
         throw new Exception("Failed to load sql dump: " . implode("\n", $output));
     }
     // make sure archiving will be called
     Piwik_ArchiveProcessing::setBrowserTriggerArchiving(true);
 }
 /**
  * test of validity of an archive, for today's archive with toronto's timezone
  * @group Core
  * @group ArchiveProcessing
  */
 public function testInitTodayToronto()
 {
     if (!Piwik::isTimezoneSupportEnabled()) {
         $this->markTestSkipped('timezones needs to be supported');
     }
     $now = time();
     $siteTimezone = 'America/Toronto';
     $timestamp = Piwik_Date::factory('now', $siteTimezone)->getTimestamp();
     $dateLabel = date('Y-m-d', $timestamp);
     Piwik_ArchiveProcessing::setBrowserTriggerArchiving(true);
     $archiveProcessing = $this->_createArchiveProcessing('day', $dateLabel, $siteTimezone);
     $archiveProcessing->time = $now;
     // we look at anything processed within the time to live range
     $dateMinArchived = $now - Piwik_ArchiveProcessing::getTodayArchiveTimeToLive();
     $this->assertEquals($archiveProcessing->getMinTimeArchivedProcessed(), $dateMinArchived);
     $this->assertTrue($archiveProcessing->isArchiveTemporary());
     // when browsers don't trigger archives, we force ArchiveProcessing
     // to fetch any of the most recent archive
     Piwik_ArchiveProcessing::setBrowserTriggerArchiving(false);
     // see isArchivingDisabled()
     // Running in CLI doesn't impact the time to live today's archive we are loading
     // From CLI, we will not return data that is 'stale'
     if (!Piwik_Common::isPhpCliMode()) {
         $dateMinArchived = 0;
     }
     $this->assertEquals($archiveProcessing->getMinTimeArchivedProcessed(), $dateMinArchived);
     // this test varies with DST
     $this->assertTrue($archiveProcessing->getStartDatetimeUTC() == date('Y-m-d', $timestamp) . ' 04:00:00' || $archiveProcessing->getStartDatetimeUTC() == date('Y-m-d', $timestamp) . ' 05:00:00');
     $this->assertTrue($archiveProcessing->getEndDatetimeUTC() == date('Y-m-d', $timestamp + 86400) . ' 03:59:59' || $archiveProcessing->getEndDatetimeUTC() == date('Y-m-d', $timestamp + 86400) . ' 04:59:59');
     $this->assertTrue($archiveProcessing->isArchiveTemporary());
 }