Esempio n. 1
0
 /**
  * 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));
 }