public function startProcess() { define('INTERNAL', true); foreach ($this->apps as $institution) { $short_name = $institution->getShortName(); if (GcrEschoolTable::isShortNameValid($short_name)) { error_log("\n" . date('d/m/Y H:i:s', time()) . ": App=" . $short_name . ": Starting LDAP sync", 3, gcr::rootDir . 'debug/error.log'); print "\n" . date('d/m/Y H:i:s', time()) . ": Starting LDAP sync for {$short_name}"; $command = "/usr/bin/php " . gcr::maharaDir . "auth/ldap/cli/sync_users.php now {$short_name}"; system($command); } } $this->process->delete(); }
public function startProcess() { define('INTERNAL', true); require gcr::maharaDir . 'lib/version.php'; foreach ($this->apps as $institution) { $short_name = $institution->getShortName(); $upgrade_needed = $config->version > $institution->getConfigVar('version'); $siteclosed = $institution->getConfigVar('siteclosed'); if (!$upgrade_needed && (!$siteclosed || empty($siteclosed))) { if (GcrEschoolTable::isShortNameValid($short_name)) { error_log("\n" . date('d/m/Y H:i:s', time()) . ": App=" . $short_name . ": Starting Cron Script", 3, gcr::rootDir . 'debug/error.log'); print "\n" . date('d/m/Y H:i:s', time()) . ": Starting cron for {$short_name}"; $command = "/usr/bin/php " . gcr::maharaDir . "lib/cron.php now {$short_name}"; system($command); } } else { print "\n" . date('d/m/Y H:i:s', time()) . ": Delaying cron for {$short_name}, upgrade pending"; } } $this->process->delete(); }
public function startProcess() { foreach ($this->apps as $eschool) { $output = ''; $ts = time(); $short_name = $eschool->getShortName(); if (GcrEschoolTable::isShortNameValid($short_name)) { $command = "/usr/bin/php " . gcr::moodleDir . "admin/cli/upgrade.php --eschool {$short_name} --non-interactive"; system($command, $output); // If everything worked, this second execution should return int(0), // which signifies that everything is already up to date. system($command, $output); if ($output === 0) { $text = ': Moodle updates for ' . $short_name . ' completed in ' . (time() - $ts) . ' seconds.'; } else { $text = ': Moodle updates FAILED for ' . $short_name . ' after ' . (time() - $ts) . ' seconds.'; } $eschool->deleteCacheDirectories(); error_log("\n" . date('d/m/Y H:i:s', time()) . $text, 3, gcr::rootDir . 'debug/error.log'); } } $this->process->delete(); }
public function startProcess() { define('MOODLE_INTERNAL', true); require gcr::moodleDir . "version.php"; foreach ($this->apps as $eschool) { $short_name = $eschool->getShortName(); $eschool_version = $eschool->getConfigVar('version'); $upgrade_running = $eschool->getConfigVar('upgraderunning'); if (empty($eschool_version)) { error_log('Version data missing from ' . $short_name, 3, gcr::rootDir . 'debug/error.log'); } if (!$upgrade_running && $version <= $eschool_version) { if (GcrEschoolTable::isShortNameValid($short_name)) { error_log("\n" . date('d/m/Y H:i:s', time()) . ": App=" . $short_name . ": Starting Cron Script", 3, gcr::rootDir . 'debug/error.log'); print "\n" . date('d/m/Y H:i:s', time()) . ": Starting cron for {$short_name}"; $command = "/usr/bin/php " . gcr::moodleDir . "admin/cli/cron.php --eschool {$short_name}"; system($command); } } else { print "\n" . date('d/m/Y H:i:s', time()) . ": Delaying cron for {$short_name}, upgrade pending"; } } $this->process->delete(); }
protected function validateShortName($shortName, $testForValidNewName = true) { $shortNameValid = true; if (!GcrEschoolTable::isShortNameValid($shortName)) { $this->formErrors['short_nameSize'] = 'eSchool URL must be 3-32 alphanumeric characters (1st character must be a letter).'; $shortNameValid = false; } if ($testForValidNewName && GcrEschoolTable::isShortNameUsed($shortName)) { $this->formErrors['short_nameUsed'] = 'eSchool URL is already in use.'; $shortNameValid = false; } if ($testForValidNewName && GcrEschoolTable::isShortNameReserved($shortName)) { $this->formErrors['short_nameReserved'] = 'eSchool URL is a reserved word.'; $shortNameValid = false; } return $shortNameValid; }
protected function validateEschoolShortName($shortName) { global $CFG; $shortNameValid = true; if (!GcrEschoolTable::isShortNameValid($shortName)) { $this->formErrors['short_nameSize'] = 'eClassroom URL must be 2-32 alphanumeric characters (1st character must be a letter).'; $shortNameValid = false; } if (GcrEschoolTable::isShortNameUsed($shortName)) { $app = GcrInstitutionTable::getApp($shortName); if (!$CFG->current_app->hasPrivilege('GCUser') || $app->isMahara()) { $this->formErrors['short_nameUsed'] = 'eClassroom URL is already in use.'; $shortNameValid = false; } } if (GcrEschoolTable::isShortNameReserved($shortName)) { $this->formErrors['short_nameReserved'] = 'eClassroom URL is a reserved word.'; $shortNameValid = false; } return $shortNameValid; }
public function resetMdlCacheSettings() { global $CFG; $this->start_time = time(); $this->operation_description = 'Reset Moodle Cache Settings:'; foreach ($this->app_array as $eschool) { if ($eschool->isHome()) { continue; } if (!GcrEschoolTable::isShortNameValid($eschool->getShortName())) { $CFG->current_app->gcError($short_name . ' is an invalid shortname', 'gcdatabaseerror'); } $eschool->setMdlCacheSettings(); } $this->close(); }
public static function deleteSchemaFromSystem($caller) { $conn = self::getConnection(); $schema_name = $caller->getShortName(); // make sure that shortname is not '' or ' ' which would result in deleting // the entire moodledata directory. if (!GcrEschoolTable::isShortNameValid($schema_name)) { $CFG->current_app->gcError('Attempt to delete eschool with corrupt short_name', 'gcdatabaseerror'); die; } try { $conn->execute('drop schema ' . $schema_name . ' cascade'); } catch (Exception $e) { error_log("\n" . date('d/m/Y H:i:s', time()) . ": Delete schema {$schema_name} error, database schema not deleted", 3, gcr::rootDir . 'debug/error.log'); } try { $conn->execute('drop user gc4' . $schema_name . 'admin'); } catch (Exception $e) { error_log("\n" . date('d/m/Y H:i:s', time()) . ": Delete schema {$schema_name} error, database user not deleted", 3, gcr::rootDir . 'debug/error.log'); } }