Portions created by the Initial Developer are Copyright (C) 2008-2012 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ set_time_limit(600); //sec (10 min) include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check the permission if ( !permission_exists('upgrade_svn') && !permission_exists('upgrade_schema') && !permission_exists('upgrade_apps') && !permission_exists('menu_restore') && !permission_exists('group_edit') ) { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); if (sizeof($_POST) > 0) { $do = $_POST['do']; // run svn update if ($do["svn"] && permission_exists("upgrade_svn") && !is_dir("/usr/share/examples/fusionpbx")) { $cmd = "svn up /var/www/fusionpbx"; exec($cmd, $response_svn_update); $update_failed = true; if (sizeof($response_svn_update) > 0) { $_SESSION["response_svn_update"] = $response_svn_update; foreach ($response_svn_update as $response_line) { if (substr_count($response_line, "Updated to revision") > 0 || substr_count($response_line, "At revision") > 0) { $update_failed = false; } } } if ($update_failed) { $_SESSION["message_delay"] = 3500; $_SESSION["message_mood"] = 'negative'; $response_message = $text['message-upgrade_svn_failed']; } else { //update scripts folder, if allowed (default) if ($_SESSION['switch']['scripts_update']['boolean'] != 'false' && $_SESSION['switch']['scripts']['dir'] != '') { $scripts_dir_target = $_SESSION['switch']['scripts']['dir']; $scripts_dir_source = realpath($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/resources/install/scripts'); foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($scripts_dir_source)) as $file_path_source) { if ( substr_count($file_path_source, '/..') == 0 && substr_count($file_path_source, '/.') == 0 && substr_count($file_path_source, '/.svn') == 0 ) { $file_path_target = str_replace($scripts_dir_source, $scripts_dir_target, $file_path_source); if ($file_path_target != $scripts_dir_target.'/resources/config.lua') { //echo $file_path_source.' ---> '.$file_path_target.'
'; copy($file_path_source, $file_path_target); chmod($file_path_target, 0755); } } } $response_message = $text['message-upgrade_svn_scripts']; } else { $response_message = $text['message-upgrade_svn']; } } } // load an array of the database schema and compare it with the active database if ($do["schema"] && permission_exists("upgrade_schema")) { $response_message = $text['message-upgrade_schema']; $upgrade_data_types = check_str($do["data_types"]); require_once "resources/classes/schema.php"; $obj = new schema(); $_SESSION["schema"]["response"] = $obj->schema("html"); } // process the apps defaults if ($do["apps"] && permission_exists("upgrade_apps")) { $response_message = $text['message-upgrade_apps']; require_once "resources/classes/domains.php"; $domain = new domains; $domain->upgrade(); } // restore defaults of the selected menu if ($do["menu"] && permission_exists("menu_restore")) { $sel_menu = explode('|', check_str($_POST["sel_menu"])); $menu_uuid = $sel_menu[0]; $menu_language = $sel_menu[1]; $included = true; require_once("core/menu/menu_restore_default.php"); unset($sel_menu); $response_message = $text['message-upgrade_menu']; } // restore default permissions if ($do["permissions"] && permission_exists("group_edit")) { $included = true; require_once("core/users/permissions_default.php"); $response_message = "Permission Defaults Restored"; } if (sizeof($_POST['do']) > 1) { $response_message = $text['message-upgrade']; } $_SESSION["message"] = $response_message; header("Location: ".PROJECT_PATH."/core/upgrade/index.php"); exit; } // if require_once "resources/header.php"; $document['title'] = $text['title-upgrade']; echo "".$text['header-upgrade'].""; echo "

"; echo $text['description-upgrade']; echo "

"; echo "
\n"; if (permission_exists("upgrade_svn") && !is_dir("/usr/share/examples/fusionpbx")) { echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; echo "
\n"; echo " ".$text['label-upgrade_svn']; echo " \n"; echo " \n"; echo "
\n"; } if (permission_exists("upgrade_schema")) { echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; echo "
\n"; echo " ".$text['label-upgrade_schema']; echo " \n"; echo " \n"; echo "
\n"; echo "\n"; } if (permission_exists("upgrade_apps")) { echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; echo "
\n"; echo " ".$text['label-upgrade_apps']; echo " \n"; echo " \n"; echo "
\n"; } if (permission_exists("menu_restore")) { echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; echo "
\n"; echo " ".$text['label-upgrade_menu']; echo " \n"; echo " "; echo " "; echo "
"; echo " "; echo "
"; echo "
\n"; } if (permission_exists("group_edit")) { echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; echo "
\n"; echo " ".$text['label-upgrade_permissions']; echo " \n"; echo " \n"; echo "
\n"; } echo "
"; echo "
"; echo "

"; echo "
\n"; // output result of svn update if (sizeof($_SESSION["response_svn_update"]) > 0) { echo "
"; echo "".$text['header-svn_update_results'].""; echo "

"; echo "
";
	echo implode("\n", $_SESSION["response_svn_update"]);
	echo "
"; echo "

"; unset($_SESSION["response_svn_update"]); } // output result of upgrade schema if ($_SESSION["schema"]["response"] != '') { echo "
"; echo "".$text['header-upgrade_schema_results'].""; echo "

"; echo $_SESSION["schema"]["response"]; unset($_SESSION["schema"]["response"]); } require_once "resources/footer.php"; ?>