r4301 index.php: add "upgrade" case with some of the code previously located in upgra...
authorDenis Ovsienko <infrastation@yandex.ru>
Mon, 7 Mar 2011 13:19:45 +0000 (13:19 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 7 Mar 2011 13:19:45 +0000 (13:19 +0000)
upgrade.php: convert into pure library, use inline CSS
init.php: update URI in message
platform_function_test(): change default class
showError(): update default location

wwwroot/inc/dictionary.php
wwwroot/inc/init.php
wwwroot/inc/upgrade.php [moved from wwwroot/upgrade.php with 98% similarity]
wwwroot/index.php

index 4b4f4d7221be40084b62873eb3fc797c82bcaba3..fcf5a6d3b8d7846345f91fd213ca08a04725c773 100644 (file)
@@ -34,7 +34,7 @@ function isInnoDBSupported ()
        return FALSE;
 }
 
-function platform_function_test ($funcname, $extname, $what_if_not = 'not found', $error_class = 'msg_error')
+function platform_function_test ($funcname, $extname, $what_if_not = 'not found', $error_class = 'trerror')
 {
        return platform_generic_test (function_exists ($funcname), $extname, 'NOT PRESENT', $error_class);
 }
index 5c0590be8ec94fa9209c571b71d04a3aa3107a64..7911460a6cccc8474bf6cb72ad181f11d5ed82db 100644 (file)
@@ -92,7 +92,7 @@ if (getConfigVar ('DB_VERSION') != CODE_VERSION)
                'just upgraded to version ' . CODE_VERSION . ', while the '.
                'database version is ' . getConfigVar ('DB_VERSION') . '.<br>No user will be ' .
                'either authenticated or shown any page until the upgrade is ' .
-               "finished.<br>Follow <a href='upgrade.php'>this link</a> and " .
+               "finished.<br>Follow <a href='?module=upgrade'>this link</a> and " .
                'authenticate as administrator to finish the upgrade.</p>';
        exit (1);
 }
similarity index 98%
rename from wwwroot/upgrade.php
rename to wwwroot/inc/upgrade.php
index b7e4f1cbf57b6075891f98754f17c8d7dd7cbd5c..ee63cc98ae24970d1956bd54dce2a529440f1624 100644 (file)
@@ -151,7 +151,7 @@ function executeUpgradeBatch ($batchid)
                        // create tables for storing files (requires InnoDB support)
                        if (!isInnoDBSupported ())
                        {
-                               showError ("Cannot upgrade because InnoDB tables are not supported by your MySQL server. See the README for details.");
+                               showError ("Cannot upgrade because InnoDB tables are not supported by your MySQL server. See the README for details.", __FUNCTION__);
                                die;
                        }
 
@@ -1013,7 +1013,7 @@ CREATE TABLE `EntityLink` (
                        $query[] = "UPDATE Config SET varvalue = '0.19.2' WHERE varname = 'DB_VERSION'";
                        break;
                default:
-                       showError ("executeUpgradeBatch () failed, because batch '${batchid}' isn't defined");
+                       showError ("executeUpgradeBatch () failed, because batch '${batchid}' isn't defined", __FUNCTION__);
                        die;
                        break;
        }
@@ -1043,34 +1043,6 @@ CREATE TABLE `EntityLink` (
        echo '</td></tr>';
 }
 
-// ******************************************************************
-//
-//                  Execution starts here
-//
-// ******************************************************************
-
-require_once 'inc/config.php'; // for CODE_VERSION
-require_once 'inc/dictionary.php';
-// Enforce default value for now, releases prior to 0.17.0 didn't support 'httpd' auth source.
-$user_auth_src = 'database';
-
-if (file_exists ('inc/secret.php'))
-       require_once 'inc/secret.php';
-else
-       die ('<center>There is no working RackTables instance here, <a href="install.php">install</a>?</center>');
-
-try
-{
-       $dbxlink = new PDO ($pdo_dsn, $db_username, $db_password);
-}
-catch (PDOException $e)
-{
-       die ("Database connection failed:\n\n" . $e->getMessage());
-}
-
-// Now we need to be sure that the current user is the administrator.
-// The rest doesn't matter within this context.
-
 function authenticate_admin ($username, $password)
 {
        global $dbxlink;
@@ -1100,7 +1072,7 @@ function getDatabaseVersion ()
        return $ret;
 }
 
-function showError ($info = '', $location = 'upgrade.php')
+function showError ($info = '', $location = 'N/A')
 {
        if (preg_match ('/\.php$/', $location))
                $location = basename ($location);
@@ -1114,8 +1086,11 @@ function showError ($info = '', $location = 'upgrade.php')
        echo "Go back or try starting from <a href='index.php'>index page</a>.<br></div>\n";
 }
 
-switch ($user_auth_src)
+function renderUpgraderHTML()
 {
+       global $user_auth_src;
+       switch ($user_auth_src)
+       {
        case 'database':
        case 'ldap': // authenticate against DB as well
                if
@@ -1129,7 +1104,7 @@ switch ($user_auth_src)
                {
                        header ('WWW-Authenticate: Basic realm="RackTables upgrade"');
                        header ('HTTP/1.0 401 Unauthorized');
-                       showError ('You must be authenticated as an administrator to complete the upgrade.');
+                       showError ('You must be authenticated as an administrator to complete the upgrade.', __FUNCTION__);
                        die;
                }
                break; // cleared
@@ -1140,20 +1115,35 @@ switch ($user_auth_src)
                        !strlen ($_SERVER['REMOTE_USER'])
                )
                {
-                       showError ('System misconfiguration. The web-server didn\'t authenticate the user, although ought to do.');
+                       showError ('System misconfiguration. The web-server didn\'t authenticate the user, although ought to do.', __FUNCTION__);
                        die;
                }
                break; // cleared
        default:
-               showError ('authentication source misconfiguration');
+               showError ('authentication source misconfiguration', __FUNCTION__);
                die;
-}
+       }
 
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head><title>RackTables upgrade script</title>
-<link rel=stylesheet type='text/css' href='css/pi.css' />
+<style type="text/css">
+.tdleft {
+       text-align: left;
+}
+
+.trok {
+       background-color: #80FF80;
+}
+
+.trwarning {
+       background-color: #FFFF80;
+}
+
+.trerror {
+       background-color: #FF8080;
+}
+</style>
 </head>
 <body>
 <h1>Platform check status</h1>
@@ -1192,5 +1182,6 @@ else
 }
 echo '</table>';
 echo '</body></html>';
+}
 
 ?>
index dd00562ba8e6a3510b4807ea26725cec76ecb48e..0d5ca024c0de4b02866919d03ea394075f222db7 100644 (file)
@@ -153,6 +153,24 @@ try {
                require_once 'inc/init.php';
                renderPopupHTML();
                break;
+       case 'upgrade' == $_REQUEST['module']:
+               require_once 'inc/config.php'; // for CODE_VERSION
+               require_once 'inc/dictionary.php';
+               require_once 'inc/upgrade.php';
+               // Enforce default value for now, releases prior to 0.17.0 didn't support 'httpd' auth source.
+               $user_auth_src = 'database';
+               if (FALSE === @include_once 'inc/secret.php')
+                       die ('<center>There is no working RackTables instance here, <a href="install.php">install</a>?</center>');
+               try
+               {
+                       $dbxlink = new PDO ($pdo_dsn, $db_username, $db_password);
+               }
+               catch (PDOException $e)
+               {
+                       die ("Database connection failed:\n\n" . $e->getMessage());
+               }
+               renderUpgraderHTML();
+               break;
        default:
                throw new InvalidRequestArgException ('module', $_REQUEST['module']);
        }