Fixed bug #11368: Ignore ENABLE_INSTALL_TOOL file if it is older than one hour
authorMichael Stucki <michael.stucki@typo3.org>
Tue, 23 Jun 2009 11:54:15 +0000 (11:54 +0000)
committerMichael Stucki <michael.stucki@typo3.org>
Tue, 23 Jun 2009 11:54:15 +0000 (11:54 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@5616 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/install/index.php
typo3/sysext/install/mod/class.tx_install.php

index 0ef5a80..5a4aaa9 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
+2009-06-23  Michael Stucki  <michael@typo3.org>
+
+       * Fixed bug #11368: Ignore ENABLE_INSTALL_TOOL file if it is older than one hour
+
 2009-06-23  Steffen Kamper  <info@sk-typo3.de>
 
-       * fixed #11377: synced extJs resources with extJs 3.0RC2, removed skins and unused css/images
+       * Fixed bug #11377: synced extJs resources with extJs 3.0RC2, removed skins and unused css/images
 
 2009-06-22  Sebastian Kurf├╝rst <sebastian@typo3.org>
 
@@ -8,7 +12,7 @@
 
 2009-06-22  Steffen Kamper  <info@sk-typo3.de>
 
-       * replaced icon #11371: The current clear page cache icon is ugly and unclear (thanks to Uschi Renzihausen)
+       * Replaced icon #11371: The current clear page cache icon is ugly and unclear (thanks to Uschi Renzihausen)
 
 2009-06-21  Steffen Kamper  <info@sk-typo3.de>
 
index a3e3985..5bcf792 100755 (executable)
@@ -46,9 +46,29 @@ $PATH_thisScript = str_replace('//','/', str_replace('\\','/', (PHP_SAPI=='cgi'|
        // Only allow Install Tool access if the file "typo3conf/ENABLE_INSTALL_TOOL" is found
 $enableInstallToolFile = dirname(dirname(dirname($PATH_thisScript))).'/typo3conf/ENABLE_INSTALL_TOOL';
 
+if (is_file($enableInstallToolFile) && (time() - filemtime($enableInstallToolFile) > 3600)) {
+       $content = file_get_contents($enableInstallToolFile);
+       $verifyString = 'KEEP_FILE';
+
+       if (trim($content) !== $verifyString) {
+                       // Delete the file if it is older than 3600s (1 hour)
+               unlink($enableInstallToolFile);
+       }
+}
+
        // Change 1==2 to 1==1 if you want to lock the Install Tool regardless of the file ENABLE_INSTALL_TOOL
-if (1==2 || ($_SERVER['REMOTE_ADDR']!='127.0.0.1' && !@is_file($enableInstallToolFile)))       {
-       die('The Install Tool is locked.<br /><br /><strong>Fix:</strong> Create a file typo3conf/ENABLE_INSTALL_TOOL<br />This file may simply be empty.<br /><br />For security reasons, it is highly recommended to rename<br />or delete the file after the operation is finished.');
+if (1==2 || ($_SERVER['REMOTE_ADDR']!='127.0.0.1' && !is_file($enableInstallToolFile))) {
+       die(nl2br('<strong>The Install Tool is locked.</strong>
+
+               Fix: Create a file typo3conf/ENABLE_INSTALL_TOOL
+               This file may simply be empty.
+
+               For security reasons, it is highly recommended to rename
+               or delete the file after the operation is finished.
+
+               <strong>If the file is older than 1 hour TYPO3 has automatically
+               deleted it, so it needs to be created again.</strong>
+       '));
 }
 
 
index b0f73e9..b5b5e55 100755 (executable)
@@ -305,6 +305,13 @@ BTW: This Install Tool will only work if cookies are accepted by your web browse
 
                if (md5($GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword'].'|'.$uKey) == $sKey || $this->checkPassword($uKey))    {
                        $this->passwordOK=1;
+
+                       $enableInstallToolFile = PATH_typo3conf . 'ENABLE_INSTALL_TOOL';
+                       if (is_file ($enableInstallToolFile)) {
+                                       // Extend the age of the ENABLE_INSTALL_TOOL file by one hour
+                               touch ($enableInstallToolFile);
+                       }
+
                        if($this->redirect_url) {
                                header('Location: '.$this->redirect_url);
                        }