/** * Installation Step 5: Table Creation */ function tablesCreation() { $this->checkPreviousStepIsValid( __FUNCTION__ ); $view = new Piwik_Installation_View( $this->pathView . 'tablesCreation.tpl', $this->getInstallationSteps(), __FUNCTION__ ); $this->skipThisStep( __FUNCTION__ ); $this->createDbFromSessionInformation(); if(Piwik_Common::getRequestVar('deleteTables', 0, 'int') == 1) { Piwik::dropTables(); $view->existingTablesDeleted = true; // when the user decides to drop the tables then we dont skip the next steps anymore // workaround ZF-1743 $tmp = $this->session->skipThisStep; $tmp['firstWebsiteSetup'] = false; $tmp['displayJavascriptCode'] = false; $this->session->skipThisStep = $tmp; } $tablesInstalled = Piwik::getTablesInstalled(); $tablesToInstall = Piwik::getTablesNames(); $view->tablesInstalled = ''; if(count($tablesInstalled) > 0) { // we have existing tables $view->tablesInstalled = implode(', ', $tablesInstalled); $view->someTablesInstalled = true; $minimumCountPiwikTables = 18; $baseTablesInstalled = preg_grep('/archive_numeric|archive_blob/', $tablesInstalled, PREG_GREP_INVERT); Piwik::createAccessObject(); Piwik::setUserIsSuperUser(); if(count($baseTablesInstalled) >= $minimumCountPiwikTables && count(Piwik_SitesManager_API::getInstance()->getAllSitesId()) > 0 && count(Piwik_UsersManager_API::getInstance()->getUsers()) > 0) { $view->showReuseExistingTables = true; // when the user reuses the same tables we skip the website creation step // workaround ZF-1743 $tmp = $this->session->skipThisStep; $tmp['firstWebsiteSetup'] = true; $tmp['displayJavascriptCode'] = true; $this->session->skipThisStep = $tmp; } } else { Piwik::createTables(); Piwik::createAnonymousUser(); $updater = new Piwik_Updater(); $updater->recordComponentSuccessfullyUpdated('core', Piwik_Version::VERSION); $view->tablesCreated = true; $view->showNextStep = true; } $this->session->currentStepDone = __FUNCTION__; echo $view->render(); }
function tablesCreation() { $this->checkPreviousStepIsValid(__FUNCTION__); $view = new Piwik_Installation_View($this->pathView . 'tablesCreation.tpl', $this->getInstallationSteps(), __FUNCTION__); $session = new Zend_Session_Namespace("Installation"); $this->skipThisStep(__FUNCTION__); $this->createDbFromSessionInformation(); if (Piwik_Common::getRequestVar('deleteTables', 0, 'int') == 1) { Piwik::dropTables(); $view->existingTablesDeleted = true; // when the user decides to drop the tables then we dont skip the next steps anymore $session->skipThisStep['firstWebsiteSetup'] = false; $session->skipThisStep['displayJavascriptCode'] = false; } $tablesInstalled = Piwik::getTablesInstalled(); $tablesToInstall = Piwik::getTablesNames(); $view->tablesInstalled = ''; if (count($tablesInstalled) > 0) { $view->tablesInstalled = implode(", ", $tablesInstalled); $view->someTablesInstalled = true; $minimumCountPiwikTables = 14; if (count($tablesInstalled) >= $minimumCountPiwikTables) { $view->showReuseExistingTables = true; // when the user reuses the same tables we skip the website creation step $session->skipThisStep['firstWebsiteSetup'] = true; $session->skipThisStep['displayJavascriptCode'] = true; } } else { Piwik::createTables(); Piwik::createAnonymousUser(); require_once "Updater.php"; $updater = new Piwik_Updater(); $updater->recordComponentSuccessfullyUpdated('core', Piwik_Version::VERSION); $view->tablesCreated = true; $view->showNextStep = true; } if (isset($session->databaseCreated) && $session->databaseCreated === true) { $view->databaseName = $session->db_infos['dbname']; $view->databaseCreated = true; unset($session->databaseCreated); } $session->currentStepDone = __FUNCTION__; echo $view->render(); }
public function test_authenticate() { // no login; no token auth $auth = new Piwik_Login_Auth(); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login; no token auth $auth->setLogin(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // non-existent user $auth->setLogin('nobody'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // anonymous user doesn't exist yet $auth->setLogin('anonymous'); $auth->setTokenAuth(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login; anonymous user doesn't exist yet $auth->setLogin(''); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // API authentication; anonymous user doesn't exist yet $auth->setLogin(null); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // anonymous user doesn't exist yet $auth->setLogin('anonymous'); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); Piwik::createAnonymousUser(); // missing token_auth $auth->setLogin('anonymous'); $auth->setTokenAuth(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login $auth->setLogin(''); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin('anonymous'); $auth->setTokenAuth(0); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // API authentication $auth->setLogin(null); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); // valid login & token auth $auth->setLogin('anonymous'); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); $user = array('login' => 'user', 'password' => "geqgeagae", 'email' => "*****@*****.**", 'alias' => "alias"); Piwik_UsersManager_API::getInstance()->addUser($user['login'], $user['password'], $user['email'], $user['alias']); $password = md5($user['password']); $tokenAuth = Piwik_UsersManager_API::getInstance()->getTokenAuth($user['login'], $password); // empty token auth $auth->setLogin($user['login']); $auth->setTokenAuth(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not a token auth $auth->setLogin($user['login']); $auth->setTokenAuth($user['password']); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not a token auth $auth->setLogin($user['login']); $auth->setTokenAuth($password); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login $auth->setLogin(''); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin(0); $auth->setTokenAuth(0); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin(0); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin($user['login']); $auth->setTokenAuth(0); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // API authentication $auth->setLogin(null); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); // valid login & token auth $auth->setLogin($user['login']); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); // valid login & hashed token auth $auth->setLogin($user['login']); $hash = $auth->getHashTokenAuth($user['login'], $tokenAuth); $auth->setTokenAuth($hash); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); $user = Piwik_Config::getInstance()->superuser; $password = $user['password']; $tokenAuth = Piwik_UsersManager_API::getInstance()->getTokenAuth($user['login'], $password); // empty token auth $auth->setLogin($user['login']); $auth->setTokenAuth(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not a token auth $auth->setLogin($user['login']); $auth->setTokenAuth($user['password']); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not a token auth $auth->setLogin($user['login']); $auth->setTokenAuth($password); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login $auth->setLogin(''); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin($user['login']); $auth->setTokenAuth(0); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // API authentication $auth->setLogin(null); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS_SUPERUSER_AUTH_CODE); // valid login & token auth $auth->setLogin($user['login']); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS_SUPERUSER_AUTH_CODE); // valid login & hashed token auth $auth->setLogin($user['login']); $hash = $auth->getHashTokenAuth($user['login'], $tokenAuth); $auth->setTokenAuth($hash); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS_SUPERUSER_AUTH_CODE); }
/** * @group Plugins * @group Login */ public function testAuthenticateSuccessAnonymous() { Piwik::createAnonymousUser(); // valid login & token auth $auth = new Piwik_Login_Auth(); $auth->setLogin('anonymous'); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEquals(Piwik_Auth_Result::SUCCESS, $rc->getCode()); }