/** * The code that needs to be called when the cron is running * * If $this->enableUserAndGroupSupport() returns TRUE then the run function * will be called for each $user. (The $user parameter will be given) * * If $this->enableUserAndGroupSupport() returns FALSE then the * $user parameter is null and the run function will be called only once. * * @param CronJob $cronJob * @param User $user [OPTIONAL] */ public function run(CronJob $cronJob, User $user = null) { GO::session()->runAsRoot(); $licenseFile = \GO::getLicenseFile(); $temporaryLicenseFile = new \GO\Base\Fs\File(GO::config()->file_storage_path . 'license/' . $licenseFile->name()); if ($temporaryLicenseFile->exists()) { if (!$temporaryLicenseFile->move($licenseFile)) { throw new \Exception("Could not move license file to Group-Office root!"); } else { if (!GO::scriptCanBeDecoded()) { GO\Base\Mail\AdminNotifier::sendMail("Group-Office license invalid", "You attempted to install a license but the license file you provided didn't work. Please contant Intermesh about this error."); } else { //add all users to the modules they have access too \GO\Professional\License::autoConfigureModulePermissions(); GO\Base\Mail\AdminNotifier::sendMail("Group-Office license installed successfully!", "Your license was installed and the new users were automatically added to the App permissions if necessary.\n\nThank you for using Group-Office!"); } } } }
protected function actionUpload() { if (!is_uploaded_file($_FILES['license_file']['tmp_name'][0])) { throw new Exception("No file received"); } if (!extension_loaded('ionCube loader')) { throw new Exception("The required free ionCube loader is not installed. "); } $licenseFile = \GO::getLicenseFile(); if ($_FILES['license_file']['name'][0] != $licenseFile->name()) { throw new Exception("File should be named " . $licenseFile->name()); } if (!$licenseFile->exists() || !$licenseFile->isWritable()) { throw new Exception("Could not write file " . $licenseFile->name() . ". Please upload the file to the webserver and change the permissions so that the webserver can write to it."); } // $destinationFolder = new GO\Base\Fs\Folder(GO::config()->file_storage_path.'license/'); // $destinationFolder->create(); // $success = move_uploaded_file($_FILES['license_file']['tmp_name'][0], $licenseFile->path()); //use cron to move the license as root. // GO\Modules\Cron\LicenseInstaller::runOnce(); echo json_encode(array('success' => $success)); }