<?php
// ----------------------------------------------------------------------
// Usermanage - Web authentication suite.
// Copyright (C) 2002-2003 The CGI Open Source Federation.
// http://cosf.sf.net
// ----------------------------------------------------------------------
// LICENSE
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License (GPL)
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have recieved the lincence included with the disribution.
// If not visit http://www.gnu.org/copyleft/gpl.html
// ----------------------------------------------------------------------
// You do not need to modify this file.
// ----------------------------------------------------------------------
// Include the header.inc.php and LEMP
if (file_exists('LEMP/lemp.php')) {
require ('LEMP/lemp.php');
} elseif (file_exists('../LEMP/lemp.php')) {
require ('../LEMP/lemp.php');
}
// Create LEMP object
$lemp = &create_obj('LEMP');
// --------
// Initiate variables
// --------
$edit_tables = array ();
$table_inserts = array ();
$self = basename (__FILE__); // Find file name (usually either index.php or setup.php)
$path = dirname (__FILE__); // Find the current directory
$setup_dir = (is_dir ('setup'))? './setup': '.'; // Find/Set the setup folder
$action = (empty ($_REQUEST['action']))? 'menu' : $_REQUEST['action']; // Retrieve current action from input
$screen = (empty ($_REQUEST['screen']))? 'main_menu' : $_REQUEST['screen']; // Retrieve current screen from input
$url = (empty ($_REQUEST['url']))? '' : $_REQUEST['url']; // Retrieve current screen from input
// Load table schema into memory
$tables = get_config('tables');
// --------
// Load headers + extensions
// --------
// Begin UserManage header extension
$menus['main_menu'][0]['name'] = 'Install';
$menus['main_menu'][0]['screen'] = 'usermanage';
$menus['main_menu'][0]['action'] = 'create';
$menus['main_menu'][1]['name'] = 'Uninstall';
$menus['main_menu'][1]['screen'] = 'usermanage';
$menus['main_menu'][1]['action'] = 'drop';
$menus['main_menu'][1]['confirm'] = true;
$menus['main_menu'][2]['name'] = 'Run UserManage!';
$menus['main_menu'][2]['url'] = ($setup_dir == './setup')? '../index.php' : 'index.php';
// End UserManage header extension
// Include optional extensions
if (file_exists("$setup_dir/header.inc.php")) {
include ("$setup_dir/header.inc.php");
}
if (file_exists("$setup_dir/setup_config.php")) {
include ("$setup_dir/setup_config.php");
}
// Initiate variables from input or from an extension
$menu = (!empty($_REQUEST['menu']))? $_REQUEST['menu'] : (!empty ($screens[$screen]['menu']))? $screens[$screen]['menu'] : 'on'; // Determine if the menu should be displayed
$next_screen = (!empty($_REQUEST['next_screen']))? $_REQUEST['next_screen'] : (!empty ($screens["$screen:$action"]['next_screen']))? $screens["$screen:$action"]['next_screen'] : ''; // Determine the following screen (Used only in "continue" links)
// Display header
if (!empty ($url)) {
header ("Location: $url");
exit ();
} elseif (isset($header)) {
echo $header;
} else {
?>
<html>
<head>
<title>Installation</title>
<script type = "text/javascript">
function confirm_action (action) {
return confirm("Are you sure you wish to '" + action + "'?");
}
function confirm_link (action, link) {
if (confirm("Are you sure you wish to '" + action + "'?")) {
window.location.href = link;
}
}
</script>
</head>
<body>
<?php
}
// --------
// Load current screen
// --------
// Include the screen
// Begin Usermanage Screen
if ($screen == 'usermanage') {
switch ($action) {
case 'create':
$table = $tables['auth_user_info'];
$edit_tables[] = <<<EOL
CREATE TABLE IF NOT EXISTS `{$table['_name']}` (
`{$table['uid']}` INT( 11 ) NOT NULL ,
`{$table['uname']}` VARCHAR( 128 ) NOT NULL ,
`{$table['pass']}` VARCHAR( 128 ) NOT NULL ,
`{$table['sid']}` VARCHAR( 128 ) NOT NULL ,
UNIQUE (`{$table['uid']}`)
);
EOL;
break;
case 'drop':
$edit_tables[] = "DROP TABLE IF EXISTS `{$tables['auth_user_info']['_name']}`;";
break;
}
} else { // End Usermanage Screen
if (file_exists("$setup_dir/$screen.inc.php")) {
include ("$setup_dir/$screen.inc.php");
}
}
// --------
// Load any screen extensions
// --------
if (is_array ($screens["$screen:$action"]['extensions']) || is_array ($screens[$screen]['extensions'])) {
$extensions = array ();
if (is_array ($screens["$screen:$action"]['extensions'])) {
$extensions = $screens["$screen:$action"]['extensions'];
}
if (is_array ($screens[$screen]['extensions'])) {
$extensions = array_merge ($extensions, $screens[$screen]['extensions']);
}
foreach ($extensions as $extension) {
if (is_file("$setup_dir/$extension")) {
include ("$setup_dir/$extension");
}
}
}
// --------
// Execute and display any SQL quries that have been produced by the screen
// --------
if (!empty($edit_tables) || !empty($table_inserts)) {
echo "Executed: <p><textarea rows='20' cols='85' wrap='off' id=''>";
if (!empty ($edit_tables)) {
foreach ($edit_tables as $edit_table) {
$result = $lemp->dbquery ($edit_table);
echo $edit_table . "\n\n";
}
}
if (!empty ($table_inserts)) {
foreach ($table_inserts as $table_insert) {
$result = $lemp->dbquery ($table_insert);
echo $table_insert . "\n\n";
}
}
echo "</textarea></pre></p>\n";
}
// --------
// Create the menu which will be displayed at the bottom of the screen
// --------
if (isset ($menus[$screen]) || isset ($menus['all'])) {
$menus_screen = (isset ($menus['all']) && isset ($menus[$screen]))? array_merge($menus[$screen], $menus['all']) : (isset ($menus['all']))? $menus['all'] : $menus[$screen];
foreach ($menus_screen as $key => $menu_item_arr) {
$menu_item_params = array();
if (!empty ($menu_item_arr['screen'])) {
$menu_item_params[] = "screen={$menu_item_arr['screen']}";
}
if (!empty ($menu_item_arr['action'])) {
$menu_item_params[] = "action={$menu_item_arr['action']}";
}
if (!empty ($menu_item_arr['url'])) {
$menu_item_params[] = "url={$menu_item_arr['url']}";
}
$menu_item_param = implode('&', $menu_item_params);
if ($menu_item_arr['confirm'] == true) {
$menu_arr[] = "<a href=\"javascript:confirm_link ('{$menu_item_arr['name']}', '$self?$menu_item_param')\">{$menu_item_arr['name']}</a>";
} else {
$menu_arr[] = "<a href='$self?$menu_item_param'>{$menu_item_arr['name']}</a>";
}
}
}
// Create back link
if ($screen != 'main_menu' && $menu != 'off') {
$menu_arr[] = "<a href='{$_SERVER['HTTP_REFERER']}'>Back</a>";
}
// Create either "continue" or "finish" links
if (isset ($finishes) && in_array ("$screen:$action", $finishes)) {
$menu_arr[] = "<a href=\"$self\">Finish and return to main menu</a>";
} elseif ($next_screen != '') {
$menu_item = "<a href=\"$self?screen=$next_screen";
if ($next_action != '') {
$menu_item .= "&action=$next_action";
}
$menu_arr[] = "$menu_item\">Continue...</a>";
}
// Display the menu.
echo '<p>[ ' . implode(' | ', $menu_arr) . ' ]</p>';
// --------
// Display footer
// --------
if (file_exists("$setup_dir/footer.inc.php")) {
include ("$setup_dir/footer.inc.php");
} elseif (!empty($footer)) {
echo $footer;
} else {
$messages = error_get_all ();
if ($messages != 'NONE') {
echo "\n <p>\n Messages: $messages\n </p>\n";
}
echo "\n </body>\n<html>";
}
?>
|