private function handleUpdate($requestData) { if ($this->authenticator->userAuthenticates($requestData["email"], $requestData["auth-key"])) { $versioning = new DIM_Versioning(); if ($versioning->databaseNeedsUpdating()) { $querymanager = new DIM_QueryManager(); $querymanager->beginUpdate(); return "1:update-success"; } return "0:no-update-available"; } return "0:unauthed"; }
private function __indexPage() { $versioning = new DIM_Versioning(); $link = new XMLElement('link'); $this->addElementToHead($link, 500); $this->setPageType('table'); $this->appendSubheading(__('Database Updating')); $fieldSet = new XMLElement('fieldset', '', array('class' => 'settings')); $fieldSet->appendChild(new XMLElement('legend', 'Database Update')); $message = new XMLElement('div'); if ($versioning->databaseNeedsUpdating()) { $querymanager = new DIM_QueryManager(); $querymanager->beginUpdate(); $message->appendChild(new XMLElement('h2', "Update Completed!")); redirect('../?message=update-success'); } else { $message->appendChild(new XMLElement('h2', "Database Already Up To Date")); } $fieldSet->appendChild($message); $this->Form->appendChild($fieldSet); }
public function requestCheckin(&$error, $newVersion, $commitMessage) { $config = $this->getConfiguration(); $versioning = new DIM_Versioning(); $requestData = array("action" => "checkin", "email" => $config["client"]["user-email"], "auth-key" => $config["client"]["auth-key"], "version" => $newVersion, "old-version" => $versioning->getLatestVersion(), "commit-message" => $commitMessage); $rawResponse = Network_IO::makeServerRequest($config["client"]["server-host"], $requestData); $responseParts = explode(":", $rawResponse); if ($responseParts[0] == "1") { // successful checkin! $this->state->checkIn(); $this->logger->addLogItem("Database Checked In", "state"); $queryManager = new DIM_QueryManager(); $versionFileName = $queryManager->makeVersionFile($responseParts[1], $responseParts[2]); $this->logger->addLogItem("Version file {$versionFileName} created", "version"); $newVersion = $versioning->addNewVersion($responseParts[1], $responseParts[2]); $this->logger->addLogItem("Database now at version {$newVersion}", "version"); return true; } else { $error = $responseParts[1]; return false; } }
public function isUpToDate() { $sql = "SELECT * FROM tbl_dim_versions ORDER BY version DESC LIMIT 1"; $latestVersion = $this->database->query($sql, RETURN_OBJECTS, true); if (count($latestVersion) == 0) { return true; //no versions yet! } if ($latestVersion[0]->state == 'completed') { $queryManager = new DIM_QueryManager(); //check there aren't updates to be run if ($queryManager->checkForVersionFile($latestVersion[0]->version + 1)) { return false; } return true; } else { return false; } }
public function processQuery($context) { /* check actually needs to process query If client and checked out */ if (strpos($context['page'][0], 'frontend') !== FALSE) { return; } if ($this->config->getExtensionMode() == 'client') { $stateManager = new DIM_StateManager("client"); if ($stateManager->isCheckedOut()) { $queryManager = new DIM_QueryManager(); $queryManager->logNewQuery(trim($context["query"])); } } }