From dbdf4c5f644759ccf6ef4071e64673c200c628ff Mon Sep 17 00:00:00 2001 From: seek3r Date: Thu, 30 Nov 2000 21:20:07 +0000 Subject: [PATCH] moved header version number to the version.inc.php and adjusted the phpgw.inc.php to reflext that change. Upgrades of the header will be done in the new setup program --- setup/createheader.php | 136 ++++++------ setup/inc/setup_auth.inc.php | 8 +- setup/index.php | 392 ++++++----------------------------- version.inc.php | 2 +- 4 files changed, 137 insertions(+), 401 deletions(-) diff --git a/setup/createheader.php b/setup/createheader.php index 73c920d4cc..ea57441037 100644 --- a/setup/createheader.php +++ b/setup/createheader.php @@ -1,55 +1,45 @@ - -if you are done and wrote the config without errors you can go here to -finish the setup - - - -
Analysis
-"; - echo "please check read/write permissions on directories or back up and download the file. Then save it to the correct location
"; - echo "
"; - exit; - }else{ - $template = fread($ftemplate,filesize(dirname($SCRIPT_FILENAME)."../header.inc.php.template")); - fclose($ftemplate); - while(list($k,$v) = each($HTTP_POST_VARS)) { - echo "Replace token '__".strtoupper($k)."__' with value '$v'
\n"; - $template = ereg_replace("__".strtoupper($k)."__",$v,$template); - } - fwrite($fsetup,$template); - fclose($fsetup); - echo "Created header.inc.php!
"; - } + }elseif ($view) { + show_header("Generated header.inc.php"); + echo "
Save this text as contents of your header.inc.php

"; + $newheader = generate_header(); + echo "
";
+    echo htmlentities($newheader);
+    echo "
"; + exit; + }elseif ($createfile) { + if(!is_writeable ($server_root."/header.inc.php")){ + show_header("Error generating header.inc.php"); + echo "Could not open header.inc.php for writing!
\n"; + echo "Please check read/write permissions on directories or back up and use another option.
"; + echo ""; + exit; }else{ - echo "could not open template header for reading !
"; + show_header("Saved header.inc.php"); + $newheader = generate_header(); + $fsetup = fopen($server_root."/header.inc.php","w"); + fwrite($fsetup,$newheader); + fclose($fsetup); + echo "Created header.inc.php!
"; exit; } - } + }else{ + show_header("Create/Edit your header.inc.php"); + echo ' + +
Analysis
'; + // Hardly try to find what DB-support is compiled in + // this dont work with PHP 3.0.10 and lower ! $supported_db = array(); if(extension_loaded("mysql")) { @@ -79,15 +69,32 @@ finish the setup echo "

did not found any valid DB support !
try to configure your php to support one of the above mentioned dbs or install phpgroupware by hand

"; exit; } - $no_guess = false; - $may_test = false; if(file_exists("../header.inc.php") && is_file("../header.inc.php")) { - echo "found configuration. using this for defaults
\n"; + echo "Found existing configuration file. Loading settings from the file...
\n"; $phpgw_info["flags"]["noapi"] = True; include("../header.inc.php"); $no_guess = true; - $may_test = true; + /* This code makes sure the newer multi-domain supporting header.inc.php is being used */ + if (!isset($phpgw_domain)) { + echo "Your using an old configuration file format...
\n"; + echo "Importing old settings into the new format....
\n"; + }else{ + if ($phpgw_info["server"]["header_version"] != $phpgw_info["server"]["current_header_version"]) { + echo "Your using an old header.inc.php version...
\n"; + echo "Importing old settings into the new format....
\n"; + } + reset($phpgw_domain); + $default_domain = each($phpgw_domain); + $phpgw_info["server"]["default_domain"] = $default_domain[0]; + unset ($default_domain); // we kill this for security reasons + $phpgw_info["server"]["db_host"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_host"]; + $phpgw_info["server"]["db_name"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_name"]; + $phpgw_info["server"]["db_user"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_user"]; + $phpgw_info["server"]["db_pass"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_pass"]; + $phpgw_info["server"]["db_type"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_type"]; + $phpgw_info["server"]["config_passwd"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["config_passwd"]; + } } else { echo "sample configuration not found. using built in defaults
\n"; $phpgw_info["server"]["server_root"] = "/path/to/phpgroupware"; @@ -119,21 +126,6 @@ finish the setup } ?> - -Test DB Connection -
- - -
-\n"; - } - echo "\n"; - } -?> Settings
@@ -179,7 +171,7 @@ finish the setup Configuration Password
">Password needed for configuration Enable MCrypt
- - - +
+
+'; + }else{ + echo 'Cannot create the header.inc.php due to file permission restrictions.
Instead you can '; + echo'or the file.'; + echo'
After retrieving the file put it into place as the header.inc.php, then click continue.
'; + echo''; + } +?> +
\ No newline at end of file diff --git a/setup/inc/setup_auth.inc.php b/setup/inc/setup_auth.inc.php index c85091fca5..281390c614 100644 --- a/setup/inc/setup_auth.inc.php +++ b/setup/inc/setup_auth.inc.php @@ -84,8 +84,8 @@ echo "\n"; } -// function loaddb(){ -// global $phpgw_domain, $FormLogout, $FormDomain, $SetupPW, $SetupDomain, $db, $PHP_SELF; + function loaddb(){ + global $phpgw_domain, $FormLogout, $FormDomain, $SetupPW, $SetupDomain, $db, $PHP_SELF, $HTTP_POST_VARS; /* This code makes sure the newer multi-domain supporting header.inc.php is being used */ if (!isset($phpgw_domain)) { @@ -134,6 +134,6 @@ $db->Database = $phpgw_domain[$SetupDomain]["db_name"]; $db->User = $phpgw_domain[$SetupDomain]["db_user"]; $db->Password = $phpgw_domain[$SetupDomain]["db_pass"]; -// } -// loaddb(); + } + loaddb(); ?> diff --git a/setup/index.php b/setup/index.php index 06e0439a25..c821f13f0b 100644 --- a/setup/index.php +++ b/setup/index.php @@ -16,338 +16,72 @@ // page explaining what to do from there (ie, create there own account) $phpgw_info["flags"] = array("noheader" => True, "nonavbar" => True, "currentapp" => "home", "noapi" => True); - include("../header.inc.php"); - include("../version.inc.php"); // To set the current core version - - // Authorize the user to use setup app and load the database - include("./inc/setup_auth.inc.php"); - // Does not return unless user is authorized - -// $db->Halt_On_Error = "report"; - $db->Halt_On_Error = "no"; - - if (!isset($oldversion)){ - @$db->query("select app_version from applications where app_name='admin'"); - @$db->next_record(); - $oldversion = $db->f("app_version"); - } - - /**********************************************************************\ - * First order of business is to upgrade or install the core. * - * if $ok is set to false after this include, the setup stops here * - * otherwise, we display the app setup form. * - * This is sorta kludgy still, but until I can figure out a clean way * - * for applications to inteact with the user, this is how it is. * - * * - \**********************************************************************/ - - /* Commenting out the following header since it breaks necessary - redirections in the setup code (core_setup.inc.php). -mr_e - - echo ' ' - . '
 phpGroupWare version ' - . $phpgw_info["server"]["version"] . ' setup'; - echo "
\n"; - echo " \n"; - echo " \n"; - echo "
\n"; - echo "
"; - */ - - $ok = true; - $baseDir = $phpgw_info["server"]["server_root"]; - include("./inc/core_setup.inc.php"); - if (!$ok) { - exit; - } else { - setup_header(); - echo "

\n"; - echo ""; - echo ""; - echo "\n"; - $db->query("select app_version from applications where app_name='admin'"); - $db->next_record(); - $curversion = $db->f("app_version"); - echo "\n"; - echo "
phpGroupWare Core Staus
Core version $curversion. No updates needed.
\n\n"; - } - // Remove the appName from all users and groupws on the system - function removeAppPerms($appName) { - global $db; - - } - - /**********************************************************************\ - * See the Developers HOWTO and the example app in phpgwapps for more * - * info on how to integrate your application with this system. * - \**********************************************************************/ - - - // Called by the app setup classes to add/remove lang records - // it acts correctly according to the current action, - // for an install/upgrade it removes the old record & installes the new one - // for an uninstall it removes the record (as long is as it NOT in common) - // - // TODO: This mechanism is VERY TEMPORARY until jengo and blinky can figure - // out a clean way to use transy for this!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - function do_lang($msg_id,$app,$lang,$content) { - global $db,$currentAction; - - $msg_id = strtolower($msg_id); - $act = strtolower($currentAction); - //echo "Do Lang: $act, $msg_id, $app, $lang, $content
\n"; - // Remove the old one - if ($act == "uninstall" || $act == "upgrade") { - if ($app == "common") { - echo "\n"; - } else { - $sql = "DELETE FROM lang WHERE message_id='" . $msg_id . "' AND app_name='". $app ."'"; - $db->query($sql); - } - } - // Add the new one - // By setting $content == "", it allows you to prune old messages from the system - if ($content != "" && $act == "install") { - $sql = "INSERT INTO lang(message_id,app_name,lang,content) VALUES("; - $sql .= "'".$msg_id."',"; - $sql .= "'".$app."',"; - $sql .= "'".$lang."',"; - $sql .= "'".$content."')"; - $db->query($sql); - } - if ($content != "" && $act == "upgrade") { - $sql = "UPDATE lang SET "; - $sql .= "content='".$content."' WHERE"; - $sql .= " message_id ='".$msg_id."'"; - $sql .= " AND app_name = '".$app."'"; - $sql .= " AND lang = '".$lang."'"; - $db->query($sql); - } - } - - /**********************************************************************\ - * * - \**********************************************************************/ - - /**********************************************************************\ - * Apps should call this function to report errors if possible to * - * display them in a nice and controlled format * - \**********************************************************************/ - function error($msg) { - global $error_count; - ++$error_count; - echo "".$msg."\n"; - } - - /**********************************************************************\ - * Apps should call this function to report warnings if possible to * - * display them in a nice and controlled format * - \**********************************************************************/ - function warn($msg) { - echo "".$msg."\n"; - } - - /**********************************************************************\ - * Applications (and the core) inherit from this class which provides * - * all the hooks that setup needs to call for the app. * - * * - * Applications should call warn() or error() to communicate with * - * the user. * - \**********************************************************************/ + include("./inc/functions.inc.php"); + + if(!file_exists("../header.inc.php") || !is_file("../header.inc.php")) { + $stage = 1.1; + $header_msg = "Stage One"; + }else{ + include("../header.inc.php"); + if (!isset($phpgw_domain) || $phpgw_info["server"]["header_version"] != $phpgw_info["server"]["current_header_version"]) { + $stage = 1.2; + $header_msg = "Stage One (Upgrade your header.inc.php)"; + }else{ /* header.inc.php part settled. Moving to authentication */ + $stage = 1.3; + $header_msg = "Stage One (Completed)"; + if (!auth()){ + show_header("Please login",True); + loginForm($login_msg); + exit; + }else{ /* authentication settled. Moving to the database portion. */ + loaddb(); + $db->Halt_On_Error = "no"; - // Template for the app-specific setup classes - class Setup { - // Is *ANY* version of the app currently installed ? - function is_installed() { - return false; - } - - // Is the app installed and up to date? - function is_current() { - return true; - } - - // Can the installed version be upgraded to the - // new one? - function can_upgrade() { - return false; - } - - // If this application dpends on any other apps - // this shouldd return an array of the app names (the directory name) - // or return false if it can stand alone - function dependant_apps() { - return false; - } - - // Called to actually upgrade the app - function upgrade() { - return true; - } - - function install() { - return false; - } - - // Called to uninstall the app - // You should remove all tables and files you created, - // and return the system to the state it was before upgrade/install was called - function uninstall() { - } - } - - // Loop through all the directories looking for possible 3rd party apps - $baseDir = $phpgw_info["server"]["server_root"]; - $setupFile = "/inc/setup.inc.php"; // File to look for to identify apps - - $dh = opendir($baseDir); - while ($dir = readdir($dh)) { - $fp = $baseDir . "/" . $dir; - if ($dir[0] != '.' && is_dir($fp)) { - $fp .= $setupFile; - if (is_file($fp) && $dir != "setup") { - //echo "found a setup! in $fp
\n"; - $detectedApps[$dir]["path"] = $fp; - $detectedApps[$dir]["name"] = $dir; - $detectedApps[$dir]["dir"] = $baseDir."/".$dir; - } - } - } - closedir($dh); - - - while ($detectedApps && list($name,$app) = each($detectedApps)) { - include($app["path"]); - $detectedApps[$name]["setup"] = new $classname($app["dir"]); - } - - // If the user wanted to upgrade/install/remove an app, now is the time - if ((isset($submit) && $submit == "Perform Actions") && - is_array($appAction)) { - echo "

\n"; - echo "\n"; - echo ""; - echo ""; - echo "\n"; - reset($detectedApps); - $numAltered = 0; - while ($detectedApps && list($name,$a) = each($detectedApps)) { - $app = $a["setup"]; - switch ($appAction[$name]) { - case "ignore": - break; - case "upgrade": - $currentAction = "upgrade"; - if ($app->upgrade()) { - echo "\n"; - } else { - echo "\n"; + $db->query("show tables"); + if ($db->num_rows()){ + /* tables exists. checking for post beta version */ + $db->free(); + $db->query("select app_version from applications where app_name='admin'"); + $db->next_record(); + $oldversion = $db->f("app_version"); + $db->free(); + if (isset($oldversion)){ + if ($oldversion == $phpgw_info["server"]["version"]){ + $stage = 2.5; + $header_msg = "Stage 2 (Tables are Current)"; + }else{ + $stage = 2.4; + $header_msg = "Stage 2 (Tables need upgrading)"; + } + }else{ + $stage = 2.2; + $header_msg = "Stage 2 (Tables appear to be pre-beta)"; } - ++$numAltered; - break; - case "install": - $currentAction = "install"; - if ($app->install()) { - echo "\n"; - } else { - echo "\n"; + }else{ + /* no tables, so checking if we can create them */ + $db->free(); + $isdb = $db->connect("kljkjh", "localhost", "phpgroupware", "phpgr0upwar3"); + echo "isdb: ".$isdb."
\n"; + + + $db->free(); + $db_rights = $db->query("CREATE TABLE phpgw_testrights ( testfield varchar(5) NOT NULL )"); +echo "db_rights: ".$db_rights."
\n"; + + if (isset($db_rights)){ + $stage = 2.3; + $header_msg = "Stage 2 (Create tables)"; + }else{ + $stage = 2.1; + $header_msg = "Stage 2 (Create Database)"; } - ++$numAltered; - break; - case "uninstall": - $currentAction = "uninstall"; - if ($app->uninstall()) { - echo "\n"; - removeAppPerms($name); - } else { - echo "\n"; - } - ++$numAltered; - break; - } - } - if ($numAltered == 0) { - echo "\n"; - } - echo "
Making Application Changes
$name upgraded.
$name - upgrade failed!
$name installed.
$name - install failed!
$name uninstalled.
$name - uninstall failed!
No applications altered.
\n"; - } - - echo "

\n"; - - echo "\n"; - echo "\n"; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo "\n"; - - $numApps = 0; - if (isSet($detectedApps)) reset($detectedApps); - while ($detectedApps && list($name,$a) = each($detectedApps)) { - $app = $a["setup"]; - - echo ""; - echo " \n"; - - if (is_object($a["setup"])) { - $installed = $app->is_installed(); - $code = $app->code_version(); - } - if (!$installed) { - echo " \n"; - } else if ($installed == "0.0.0" || $installed == "0.0") { - echo " "; - } else { - echo " \n"; - } - - echo " \n"; - - if ($installed && $app->is_current()) { - echo " "; // Can't install - echo " "; // Can't upgrade - echo " "; // Can't install - echo " "; // Can't upgrade - echo " "; // Can't remove - echo " \n"; - ++$numApps; - } - if ($numApps) { - echo "\n"; - } else { - echo "\n"; - } - echo "
Application Setup
ApplicationInstalled VersionDetected VersionInstallUpgradeRemoveDo Nothing
".$name."-not yet installed-Pre-Beta".$installed."".$code."N/AN/A"; // Can remove - echo " "; // Can ignore - } else if ($installed) { - echo " N/A"; // Can upgrade - echo " "; // Can remove - echo " "; // Can ignore - } else { - echo " "; // Can install - echo " N/AN/A"; // Can ignore - } - echo "
Found no non-core applications. "; - echo "Visit phpGroupWare.org to obtain add-on applications.
\n"; - echo "
\n"; - - echo "Applications not in the table above are either part of the phpGroupWare core, or "; - echo "have not been upgraded to the new phpGroupWare application setup code."; - - echo "

When you are done installing and upgrading applications, you should "; - echo "continue to the Configuration Page"; - echo "
or skip to Configure multi-language support.\n"; - echo "

or for a drastic measure, you can delete all your tables and data and recreate the new empty tables.\n"; - echo "

\n"; - echo " \n"; - echo "
\n"; - + $db->query("DROP TABLE phpgw_testrights"); + } + } /* from authentication check */ + } /* from header version check */ + } /* From header.inc.php not existing */ + show_header($header_msg); + show_steps($stage); ?> diff --git a/version.inc.php b/version.inc.php index d638d17acc..e802d9d8a7 100644 --- a/version.inc.php +++ b/version.inc.php @@ -12,4 +12,4 @@ /* $Id$ */ $phpgw_info["server"]["version"] = "0.9.7pre1"; -?> + $phpgw_info["server"]["current_header_version"] = "1.4";