2004-10-20 00:24:10 +02:00
< ? php
2005-06-11 13:35:58 +02:00
/* Copyright ( C ) 2004 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2008-03-12 23:24:12 +01:00
* Copyright ( C ) 2004 - 2008 Laurent Destailleur < eldy @ users . sourceforge . net >
2005-01-08 12:40:21 +01:00
* Copyright ( C ) 2004 Benoit Mortier < benoit . mortier @ opensides . be >
* Copyright ( C ) 2004 Sebastien DiCintio < sdicintio @ ressource - toi . org >
2004-02-05 00:11:46 +01:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License 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 received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*/
2005-01-08 12:40:21 +01:00
2005-06-11 13:35:58 +02:00
/**
\file htdocs / install / etape5 . php
2008-04-21 09:21:13 +02:00
\ingroup install
2005-10-22 15:48:19 +02:00
\brief Page de fin d ' installation ou de migration
2008-03-12 23:24:12 +01:00
\version $Id $
2005-01-08 12:40:21 +01:00
*/
2005-02-12 22:25:39 +01:00
include_once ( " ./inc.php " );
2008-04-19 23:52:14 +02:00
2006-01-04 17:22:38 +01:00
$setuplang = isset ( $_POST [ " selectlang " ]) ? $_POST [ " selectlang " ] : ( isset ( $_GET [ " selectlang " ]) ? $_GET [ " selectlang " ] : 'auto' );
2005-10-30 02:07:00 +01:00
$langs -> setDefaultLang ( $setuplang );
2005-02-13 17:47:32 +01:00
$langs -> load ( " admin " );
2005-02-12 22:25:39 +01:00
$langs -> load ( " install " );
2004-02-05 00:24:24 +01:00
$success = 0 ;
2008-04-04 02:30:57 +02:00
// Init "forced values" to nothing. "forced values" are used after an doliwamp install wizard.
if ( ! isset ( $force_install_type )) $force_install_type = '' ;
if ( ! isset ( $force_install_port )) $force_install_port = '' ;
if ( ! isset ( $force_install_database )) $force_install_database = '' ;
if ( ! isset ( $force_install_createdatabase )) $force_install_createdatabase = '' ;
if ( ! isset ( $force_install_databaselogin )) $force_install_databaselogin = '' ;
if ( ! isset ( $force_install_databasepass )) $force_install_databasepass = '' ;
if ( ! isset ( $force_install_databaserootlogin )) $force_install_databaserootlogin = '' ;
if ( ! isset ( $force_install_databaserootpass )) $force_install_databaserootpass = '' ;
2008-05-17 16:56:06 +02:00
if ( ! isset ( $force_install_lockinstall )) $force_install_lockinstall = '' ;
2008-04-04 02:30:57 +02:00
if ( file_exists ( " ./install.forced.php " )) include_once ( " ./install.forced.php " );
2007-10-10 01:28:27 +02:00
dolibarr_install_syslog ( " etape5: Entering etape5.php page " , LOG_INFO );
2004-01-27 15:36:40 +01:00
2005-06-11 13:35:58 +02:00
2008-04-21 09:21:13 +02:00
/*
* Actions
*/
2008-04-04 00:25:22 +02:00
// If install, check pass and pass_verif used to create admin account
if ( $_POST [ " action " ] == " set " )
2004-01-27 15:36:40 +01:00
{
2008-04-04 00:25:22 +02:00
if ( $_POST [ " pass " ] <> $_POST [ " pass_verif " ])
{
Header ( " Location: etape4.php?error=1&selectlang= $setuplang " . ( isset ( $_POST [ " login " ]) ? '&login=' . $_POST [ " login " ] : '' ));
exit ;
}
if ( strlen ( trim ( $_POST [ " pass " ])) == 0 )
{
Header ( " Location: etape4.php?error=2&selectlang= $setuplang " . ( isset ( $_POST [ " login " ]) ? '&login=' . $_POST [ " login " ] : '' ));
exit ;
}
if ( strlen ( trim ( $_POST [ " login " ])) == 0 )
{
Header ( " Location: etape4.php?error=3&selectlang= $setuplang " . ( isset ( $_POST [ " login " ]) ? '&login=' . $_POST [ " login " ] : '' ));
exit ;
}
}
2004-02-12 17:44:49 +01:00
2008-04-04 00:25:22 +02:00
/*
* View
*/
pHeader ( $langs -> trans ( " SetupEnd " ), " etape5 " );
if ( $_POST [ " action " ] == " set " || $_POST [ " action " ] == " upgrade " )
{
2008-08-13 15:39:30 +02:00
require_once ( DOL_DOCUMENT_ROOT . " /lib/functions.lib.php " );
2005-06-11 13:35:58 +02:00
print '<table cellspacing="0" cellpadding="2" width="100%">' ;
$error = 0 ;
2007-04-30 13:33:10 +02:00
2008-08-13 15:39:30 +02:00
// decode database pass if needed
2008-04-29 23:13:49 +02:00
if ( ! empty ( $dolibarr_main_db_encrypted_pass ))
{
require_once ( DOL_DOCUMENT_ROOT . " /lib/security.lib.php " );
$dolibarr_main_db_pass = dol_decode ( $dolibarr_main_db_encrypted_pass );
}
2004-01-27 15:36:40 +01:00
2005-06-11 13:35:58 +02:00
$conf -> db -> type = $dolibarr_main_db_type ;
$conf -> db -> host = $dolibarr_main_db_host ;
2008-03-10 23:38:43 +01:00
$conf -> db -> port = $dolibarr_main_db_port ;
2005-06-11 13:35:58 +02:00
$conf -> db -> name = $dolibarr_main_db_name ;
$conf -> db -> user = $dolibarr_main_db_user ;
$conf -> db -> pass = $dolibarr_main_db_pass ;
2006-10-19 20:51:35 +02:00
2008-03-10 23:38:43 +01:00
$db = new DoliDb ( $conf -> db -> type , $conf -> db -> host , $conf -> db -> user , $conf -> db -> pass , $conf -> db -> name , $conf -> db -> port );
2005-06-11 13:35:58 +02:00
$ok = 0 ;
2005-10-22 15:48:19 +02:00
// Active module user
$modName = 'modUser' ;
$file = $modName . " .class.php " ;
2007-10-10 01:28:27 +02:00
dolibarr_install_syslog ( 'install/etape5.php Load module user ' . DOL_DOCUMENT_ROOT . " /includes/modules/ " . $file , LOG_INFO );
include_once ( DOL_DOCUMENT_ROOT . " /includes/modules/ " . $file );
2005-10-22 15:48:19 +02:00
$objMod = new $modName ( $db );
$objMod -> init ();
2005-10-03 03:14:50 +02:00
// If first install
if ( $_POST [ " action " ] == " set " )
2004-01-27 15:36:40 +01:00
{
2005-10-03 03:14:50 +02:00
if ( $db -> connected == 1 )
{
2006-10-19 20:51:35 +02:00
$conf -> setValues ( $db );
2007-12-16 21:05:55 +01:00
// Create user
include_once ( DOL_DOCUMENT_ROOT . " /user.class.php " );
$createuser = new User ( $db );
$createuser -> id = 0 ;
$newuser = new User ( $db );
$newuser -> nom = 'Admin' ;
$newuser -> prenom = '' ;
$newuser -> login = $_POST [ " login " ];
$newuser -> pass = $_POST [ " pass " ];
$newuser -> admin = 1 ;
$result = $newuser -> create ( $createuser , 1 );
if ( $result > 0 )
2006-10-19 20:51:35 +02:00
{
print $langs -> trans ( " AdminLoginCreatedSuccessfuly " , $_POST [ " login " ]) . " <br> " ;
$success = 1 ;
}
else
{
2007-12-16 21:05:55 +01:00
if ( $newuser -> error == 'ErrorLoginAlreadyExists' )
2006-10-19 20:51:35 +02:00
{
2007-12-16 21:05:55 +01:00
dolibarr_install_syslog ( 'install/etape5.php ErrorLoginAlreadyExists' , LOG_WARNING );
2007-10-10 00:36:48 +02:00
print '<br><div class="warning">' . $langs -> trans ( " AdminLoginAlreadyExists " , $_POST [ " login " ]) . " </div><br> " ;
2006-10-19 20:51:35 +02:00
$success = 1 ;
}
else
{
2007-10-10 01:28:27 +02:00
dolibarr_install_syslog ( 'install/etape5.php FailedToCreateAdminLogin' , LOG_ERR );
2007-10-10 00:36:48 +02:00
print '<br>' . $langs -> trans ( " FailedToCreateAdminLogin " ) . '<br><br>' ;
2006-10-19 20:51:35 +02:00
}
}
if ( $success )
{
// Si install non Fran<61> ais, on configure pour fonctionner en mode internationnal
if ( $langs -> defaultlang != " fr_FR " )
{
$db -> query ( " UPDATE llx_const set value='eldy_backoffice.php' WHERE name='MAIN_MENU_BARRETOP'; " );
$db -> query ( " UPDATE llx_const set value='eldy_backoffice.php' WHERE name='MAIN_MENU_BARRELEFT'; " );
$db -> query ( " UPDATE llx_const set value='eldy_frontoffice.php' WHERE name='MAIN_MENUFRONT_BARRETOP'; " );
$db -> query ( " UPDATE llx_const set value='eldy_frontoffice.php' WHERE name='MAIN_MENUFRONT_BARRELEFT'; " );
}
2008-04-19 23:52:14 +02:00
dolibarr_install_syslog ( 'install/etape5.php set MAIN_VERSION_LAST_INSTALL const' , LOG_ERR );
$db -> query ( " DELETE FROM llx_const WHERE name='MAIN_VERSION_LAST_INSTALL' " );
$db -> query ( " INSERT INTO llx_const(name,value,type,visible,note) values('MAIN_VERSION_LAST_INSTALL',' " . DOL_VERSION . " ','chaine',0,'Dolibarr version for last install') " );
dolibarr_install_syslog ( 'install/etape5.php Remove MAIN_NOT_INSTALLED const' , LOG_ERR );
$db -> query ( " DELETE FROM llx_const WHERE name='MAIN_NOT_INSTALLED' " );
}
2006-10-19 20:51:35 +02:00
}
else
{
print $langs -> trans ( " Error " ) . " <br> " ;
}
2005-06-26 00:18:06 +02:00
}
2005-10-30 02:07:00 +01:00
2008-04-19 23:52:14 +02:00
// If upgrade
if ( $_POST [ " action " ] == " upgrade " )
{
2008-10-17 20:15:55 +02:00
dolibarr_install_syslog ( 'install/etape5.php set MAIN_VERSION_LAST_UPGRADE const to value ' . DOL_VERSION , LOG_DEBUG );
2008-04-19 23:52:14 +02:00
$db -> query ( " DELETE FROM llx_const WHERE name='MAIN_VERSION_LAST_UPGRADE' " );
$db -> query ( " INSERT INTO llx_const(name,value,type,visible,note) values('MAIN_VERSION_LAST_UPGRADE',' " . DOL_VERSION . " ','chaine',0,'Dolibarr version for last upgrade') " );
}
2007-07-08 21:39:04 +02:00
// May fail if parameter already defined
$resql = $db -> query ( " INSERT INTO llx_const(name,value,type,visible,note) values('MAIN_LANG_DEFAULT',' " . $setuplang . " ','chaine',0,'Default language') " );
2005-06-11 13:35:58 +02:00
print '</table>' ;
$db -> close ();
2004-01-27 15:36:40 +01:00
}
2005-06-11 13:35:58 +02:00
print " <br> " ;
2004-01-30 17:00:18 +01:00
2005-06-26 00:06:00 +02:00
2005-10-03 03:14:50 +02:00
// If first install
if ( $_POST [ " action " ] == " set " )
{
// Fin install
print $langs -> trans ( " SystemIsInstalled " ) . " <br> " ;
2008-05-17 16:56:06 +02:00
if ( empty ( $force_install_lockinstall ))
2008-04-04 02:30:57 +02:00
{
print '<div class="warning">' . $langs -> trans ( " WarningRemoveInstallDir " ) . " </div> " ;
}
else
{
// Open the file and erase the contents if any
$fp = fopen ( " ../../install.lock " , " w " );
fwrite ( $fp , " This is a lock file to prevent use of install pages " );
fclose ( $fp );
}
2005-10-03 03:14:50 +02:00
print " <br> " ;
print $langs -> trans ( " YouNeedToPersonalizeSetup " ) . " <br><br> " ;
}
// If upgrade
if ( $_POST [ " action " ] == " upgrade " )
{
// Fin install
print $langs -> trans ( " SystemIsUpgraded " ) . " <br> " ;
2008-05-17 16:56:06 +02:00
if ( empty ( $force_install_lockinstall ))
2008-04-04 02:30:57 +02:00
{
print '<div class="warning">' . $langs -> trans ( " WarningRemoveInstallDir " ) . " </div> " ;
}
else
{
// Open the file and erase the contents if any
$fp = fopen ( " ../../install.lock " , " w " );
fwrite ( $fp , " This is a lock file to prevent use of install pages " );
fclose ( $fp );
}
2005-10-03 03:14:50 +02:00
print " <br> " ;
}
2004-06-26 19:40:08 +02:00
2007-10-29 13:47:43 +01:00
print '<a href="' . $dolibarr_main_url_root . '/admin/index.php?mainmenu=home&leftmenu=setup' . ( isset ( $_POST [ " login " ]) ? '&username=' . urlencode ( $_POST [ " login " ]) : '' ) . '">' ;
2005-02-13 17:47:32 +01:00
print $langs -> trans ( " GoToSetupArea " );
print '</a>' ;
2004-02-05 00:24:24 +01:00
2005-06-26 00:06:00 +02:00
2008-03-03 02:56:46 +01:00
// Clear cache files
clearstatcache ();
2006-06-17 16:13:49 +02:00
2008-03-03 02:56:46 +01:00
dolibarr_install_syslog ( " Dolibarr install/setup finished " , LOG_INFO );
2005-10-30 02:07:00 +01:00
2008-03-03 02:56:46 +01:00
pFooter ( 1 , $setuplang );
2004-01-27 15:36:40 +01:00
?>