/** * Performs maintenance and clean up tasks after an update. * * Called during both a manual and auto-update. * * @return null * @throws Exception */ public function actionCleanUp() { $this->requirePostRequest(); $this->requireAjaxRequest(); $data = craft()->request->getRequiredPost('data'); if ($this->_isManualUpdate($data)) { $uid = false; } else { $uid = craft()->security->validateData($data['uid']); if (!$uid) { throw new Exception('Could not validate UID'); } } $handle = $this->_getFixedHandle($data); $oldVersion = false; // Grab the old version from the manifest data before we nuke it. $manifestData = UpdateHelper::getManifestData(UpdateHelper::getUnzipFolderFromUID($uid), $handle); if ($manifestData && $handle == 'craft') { $oldVersion = UpdateHelper::getLocalVersionFromManifest($manifestData); } craft()->updates->updateCleanUp($uid, $handle); // New major Craft CMS version? if ($handle == 'craft' && $oldVersion && AppHelper::getMajorVersion($oldVersion) < AppHelper::getMajorVersion(craft()->getVersion())) { $returnUrl = UrlHelper::getUrl('whats-new'); } else { $returnUrl = craft()->config->get('postCpLoginRedirect'); } $this->returnJson(array('alive' => true, 'finished' => true, 'returnUrl' => $returnUrl)); }