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 12:00:42 +0000 (12:00 +0000)
committerMichael Stucki <michael.stucki@typo3.org>
Tue, 23 Jun 2009 12:00:42 +0000 (12:00 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/branches/TYPO3_4-2@5617 709f56b5-9817-0410-a4d7-c38de5d9e867

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

index edf8afc..2031576 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-06-23  Michael Stucki  <michael@typo3.org>
+
+       * Fixed bug #11368: Ignore ENABLE_INSTALL_TOOL file if it is older than one hour
+
 2009-05-18  Oliver Hader  <oliver@typo3.org>
 
        * Fixed bug #11009: External Links get prepended with http://typo3 in the RTEhtmlarea in Firefox 3.0.11/3.5b4
@@ -12,7 +16,7 @@
 
 2009-06-02  Steffen Kamper  <info@sk-typo3.de>
 
-       * reverted #9849 as this wasn't present in 4.2.0
+       * Reverted #9849 as this wasn't present in 4.2.0
        * Fixed bug #9849: edit-wideDocument was removed, bring it back
 
 2009-05-31  Christian Kuhn  <lolli@schwarzbu.ch>
index 5b7067d..f05976f 100755 (executable)
@@ -46,9 +46,29 @@ $PATH_thisScript = str_replace('//','/', str_replace('\\','/', (php_sapi_name()=
        // 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 8ebb4b3..b85be38 100755 (executable)
@@ -312,6 +312,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);
                        }