2004-10-20 00:24:10 +02:00
< ? php
2015-07-06 15:29:58 +02:00
/* Copyright ( C ) 2004 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2017-05-23 15:13:52 +02:00
* Copyright ( C ) 2004 - 2017 Laurent Destailleur < eldy @ users . sourceforge . net >
2015-07-06 15:29:58 +02:00
* Copyright ( C ) 2004 Benoit Mortier < benoit . mortier @ opensides . be >
* Copyright ( C ) 2004 Sebastien DiCintio < sdicintio @ ressource - toi . org >
* Copyright ( C ) 2005 - 2012 Regis Houssin < regis . houssin @ capnetworks . com >
2016-02-22 18:45:00 +01:00
* Copyright ( C ) 2015 - 2016 Raphaël Doursenaud < rdoursenaud @ gpcsolutions . fr >
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
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2004-02-05 00:11:46 +01:00
* ( 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
2011-08-01 01:24:38 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2004-02-05 00:11:46 +01:00
*/
2005-01-08 12:40:21 +01:00
2005-06-11 13:35:58 +02:00
/**
2015-07-06 15:29:58 +02:00
* \file htdocs / install / step5 . php
* \ingroup install
2009-10-29 23:28:03 +01:00
* \brief Last page of upgrade or install process
2009-08-04 15:28:22 +02:00
*/
2005-01-08 12:40:21 +01:00
2012-08-23 02:46:16 +02:00
include_once 'inc.php' ;
2012-08-23 02:04:35 +02:00
if ( file_exists ( $conffile )) include_once $conffile ;
2012-08-22 23:11:24 +02:00
require_once $dolibarr_main_document_root . '/core/lib/admin.lib.php' ;
require_once $dolibarr_main_document_root . '/core/lib/security.lib.php' ; // for dol_hash
2005-02-12 22:25:39 +01:00
2016-02-22 18:45:00 +01:00
global $langs ;
2008-04-19 23:52:14 +02:00
2017-10-26 18:40:12 +02:00
$versionfrom = GETPOST ( " versionfrom " , 'alpha' , 3 ) ? GETPOST ( " versionfrom " , 'alpha' , 3 ) : ( empty ( $argv [ 1 ]) ? '' : $argv [ 1 ]);
$versionto = GETPOST ( " versionto " , 'alpha' , 3 ) ? GETPOST ( " versionto " , 'alpha' , 3 ) : ( empty ( $argv [ 2 ]) ? '' : $argv [ 2 ]);
2018-04-12 19:13:06 +02:00
$setuplang = GETPOST ( 'selectlang' , 'aZ09' , 3 ) ? GETPOST ( 'selectlang' , 'aZ09' , 3 ) : ( empty ( $argv [ 3 ]) ? 'auto' : $argv [ 3 ]);
$langs -> setDefaultLang ( $setuplang );
2018-04-13 17:05:35 +02:00
$action = GETPOST ( 'action' , 'alpha' ) ? GETPOST ( 'action' , 'alpha' ) : ( empty ( $argv [ 4 ]) ? '' : $argv [ 4 ]);
2005-10-30 02:07:00 +01:00
2009-08-14 02:30:43 +02:00
// Define targetversion used to update MAIN_VERSION_LAST_INSTALL for first install
// or MAIN_VERSION_LAST_UPGRADE for upgrade.
2017-07-07 23:19:15 +02:00
$targetversion = DOL_VERSION ; // If it's latest upgrade
2012-09-04 12:27:43 +02:00
if ( ! empty ( $action ) && preg_match ( '/upgrade/i' , $action )) // If it's an old upgrade
2009-08-14 02:30:43 +02:00
{
2012-09-04 12:27:43 +02:00
$tmp = explode ( '_' , $action , 2 );
2017-07-07 23:19:15 +02:00
if ( $tmp [ 0 ] == 'upgrade' )
{
2017-07-08 12:48:17 +02:00
if ( ! empty ( $tmp [ 1 ])) $targetversion = $tmp [ 1 ]; // if $action = 'upgrade_6.0.0-beta', we use '6.0.0-beta'
else $targetversion = DOL_VERSION ; // if $action = 'upgrade', we use DOL_VERSION
2017-07-07 23:19:15 +02:00
}
2009-08-14 02:30:43 +02:00
}
2009-08-10 14:54:37 +02:00
2005-02-13 17:47:32 +01:00
$langs -> load ( " admin " );
2005-02-12 22:25:39 +01:00
$langs -> load ( " install " );
2018-04-12 19:13:06 +02:00
$login = GETPOST ( 'login' , 'alpha' ) ? GETPOST ( 'login' , 'alpha' ) : ( empty ( $argv [ 5 ]) ? '' : $argv [ 5 ]);
$pass = GETPOST ( 'pass' , 'alpha' ) ? GETPOST ( 'pass' , 'alpha' ) : ( empty ( $argv [ 6 ]) ? '' : $argv [ 6 ]);
$pass_verif = GETPOST ( 'pass_verif' , 'alpha' ) ? GETPOST ( 'pass_verif' , 'alpha' ) : ( empty ( $argv [ 7 ]) ? '' : $argv [ 7 ]);
2016-02-22 18:45:00 +01:00
2004-02-05 00:24:24 +01:00
$success = 0 ;
2011-07-30 16:56:11 +02:00
$useforcedwizard = false ;
2012-04-08 23:18:36 +02:00
$forcedfile = " ./install.forced.php " ;
if ( $conffile == " /etc/dolibarr/conf.php " ) $forcedfile = " /etc/dolibarr/install.forced.php " ;
2016-02-22 18:45:00 +01:00
if ( @ file_exists ( $forcedfile )) {
$useforcedwizard = true ;
include_once $forcedfile ;
// If forced install is enabled, let's replace post values. These are empty because form fields are disabled.
if ( $force_install_noedit == 2 ) {
if ( ! empty ( $force_install_dolibarrlogin )) {
$login = $force_install_dolibarrlogin ;
}
}
}
2008-04-04 02:30:57 +02:00
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( " --- step5: entering step5.php page " );
2004-01-27 15:36:40 +01:00
2018-04-12 19:13:06 +02:00
$error = 0 ;
2005-06-11 13:35:58 +02:00
2008-04-21 09:21:13 +02:00
/*
2009-08-04 15:28:22 +02:00
* Actions
*/
2008-04-21 09:21:13 +02:00
2008-04-04 00:25:22 +02:00
// If install, check pass and pass_verif used to create admin account
2016-02-22 18:45:00 +01:00
if ( $action == " set " ) {
if ( $pass <> $pass_verif ) {
header ( " Location: step4.php?error=1&selectlang= $setuplang " . ( isset ( $login ) ? '&login=' . $login : '' ));
exit ;
}
if ( dol_strlen ( trim ( $pass )) == 0 ) {
header ( " Location: step4.php?error=2&selectlang= $setuplang " . ( isset ( $login ) ? '&login=' . $login : '' ));
exit ;
}
if ( dol_strlen ( trim ( $login )) == 0 ) {
header ( " Location: step4.php?error=3&selectlang= $setuplang " . ( isset ( $login ) ? '&login=' . $login : '' ));
exit ;
}
2008-04-04 00:25:22 +02:00
}
2004-02-12 17:44:49 +01:00
2008-04-04 00:25:22 +02:00
/*
2009-08-04 15:28:22 +02:00
* View
*/
2008-04-04 00:25:22 +02:00
2015-07-06 15:29:58 +02:00
pHeader ( $langs -> trans ( " SetupEnd " ), " step5 " );
2011-07-30 16:56:11 +02:00
print '<br>' ;
2008-04-04 00:25:22 +02:00
2010-09-29 10:09:17 +02:00
// Test if we can run a first install process
2012-09-04 12:27:43 +02:00
if ( empty ( $versionfrom ) && empty ( $versionto ) && ! is_writable ( $conffile ))
2010-09-29 10:09:17 +02:00
{
2011-07-30 12:23:24 +02:00
print $langs -> trans ( " ConfFileIsNotWritable " , $conffiletoshow );
2010-09-29 10:09:17 +02:00
pFooter ( 1 , $setuplang , 'jscheckparam' );
exit ;
}
2012-09-04 12:27:43 +02:00
if ( $action == " set " || empty ( $action ) || preg_match ( '/upgrade/i' , $action ))
2008-04-04 00:25:22 +02:00
{
2011-09-29 22:21:57 +02:00
$error = 0 ;
// If password is encoded, we decode it
if ( preg_match ( '/crypted:/i' , $dolibarr_main_db_pass ) || ! empty ( $dolibarr_main_db_encrypted_pass ))
{
2012-08-22 23:11:24 +02:00
require_once $dolibarr_main_document_root . '/core/lib/security.lib.php' ;
2011-09-29 22:21:57 +02:00
if ( preg_match ( '/crypted:/i' , $dolibarr_main_db_pass ))
{
$dolibarr_main_db_pass = preg_replace ( '/crypted:/i' , '' , $dolibarr_main_db_pass );
$dolibarr_main_db_pass = dol_decode ( $dolibarr_main_db_pass );
$dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass ; // We need to set this as it is used to know the password was initially crypted
}
else $dolibarr_main_db_pass = dol_decode ( $dolibarr_main_db_encrypted_pass );
}
$conf -> db -> type = $dolibarr_main_db_type ;
$conf -> db -> host = $dolibarr_main_db_host ;
$conf -> db -> port = $dolibarr_main_db_port ;
$conf -> db -> name = $dolibarr_main_db_name ;
$conf -> db -> user = $dolibarr_main_db_user ;
$conf -> db -> pass = $dolibarr_main_db_pass ;
$conf -> db -> dolibarr_main_db_encryption = isset ( $dolibarr_main_db_encryption ) ? $dolibarr_main_db_encryption : '' ;
$conf -> db -> dolibarr_main_db_cryptkey = isset ( $dolibarr_main_db_cryptkey ) ? $dolibarr_main_db_cryptkey : '' ;
2009-08-04 15:28:22 +02:00
2011-09-28 16:26:49 +02:00
$db = getDoliDBInstance ( $conf -> db -> type , $conf -> db -> host , $conf -> db -> user , $conf -> db -> pass , $conf -> db -> name , $conf -> db -> port );
2009-08-14 02:30:43 +02:00
2013-03-30 14:27:13 +01:00
// Create the global $hookmanager object
include_once DOL_DOCUMENT_ROOT . '/core/class/hookmanager.class.php' ;
2013-01-28 12:22:12 +01:00
$hookmanager = new HookManager ( $db );
2013-07-07 03:26:51 +02:00
2011-09-29 22:21:57 +02:00
$ok = 0 ;
// If first install
if ( $action == " set " )
{
// Active module user
$modName = 'modUser' ;
$file = $modName . " .class.php " ;
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: load module user ' . DOL_DOCUMENT_ROOT . " /core/modules/ " . $file , LOG_INFO );
2012-08-23 02:04:35 +02:00
include_once DOL_DOCUMENT_ROOT . " /core/modules/ " . $file ;
2011-09-29 22:21:57 +02:00
$objMod = new $modName ( $db );
$result = $objMod -> init ();
2011-06-08 13:23:55 +02:00
if ( ! $result ) print 'ERROR in activating module file=' . $file ;
2009-08-04 15:28:22 +02:00
2015-05-12 19:01:01 +02:00
if ( $db -> connected )
2011-09-29 22:21:57 +02:00
{
$conf -> setValues ( $db );
2018-02-14 14:50:22 +01:00
// Reset forced setup after the setValues
if ( defined ( 'SYSLOG_FILE' )) $conf -> global -> SYSLOG_FILE = constant ( 'SYSLOG_FILE' );
$conf -> global -> MAIN_ENABLE_LOG_TO_HTML = 1 ;
2011-09-29 22:21:57 +02:00
2017-06-10 22:31:22 +02:00
// Create admin user
2012-08-23 02:04:35 +02:00
include_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php' ;
2011-09-29 22:21:57 +02:00
2017-06-10 22:31:22 +02:00
// Set default encryption to yes, generate a salt and set default encryption algorythm (but only if there is no user yet into database)
2015-11-22 11:32:31 +01:00
$sql = " SELECT u.rowid, u.pass, u.pass_crypted " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " user as u " ;
$resql = $db -> query ( $sql );
if ( $resql )
{
$numrows = $db -> num_rows ( $resql );
2017-06-10 22:31:22 +02:00
if ( $numrows == 0 )
{
// Define default setup for password encryption
dolibarr_set_const ( $db , " DATABASE_PWD_ENCRYPTED " , " 1 " , 'chaine' , 0 , '' , $conf -> entity );
dolibarr_set_const ( $db , " MAIN_SECURITY_SALT " , dol_print_date ( dol_now (), 'dayhourlog' ), 'chaine' , 0 , '' , 0 ); // All entities
2018-01-15 11:02:08 +01:00
if ( function_exists ( 'password_hash' ))
dolibarr_set_const ( $db , " MAIN_SECURITY_HASH_ALGO " , 'password_hash' , 'chaine' , 0 , '' , 0 ); // All entities
else
dolibarr_set_const ( $db , " MAIN_SECURITY_HASH_ALGO " , 'sha1md5' , 'chaine' , 0 , '' , 0 ); // All entities
2017-06-10 22:31:22 +02:00
}
2018-03-19 17:58:19 +01:00
dolibarr_install_syslog ( 'step5: DATABASE_PWD_ENCRYPTED = ' . $conf -> global -> DATABASE_PWD_ENCRYPTED . ' MAIN_SECURITY_HASH_ALGO = ' . $conf -> global -> MAIN_SECURITY_HASH_ALGO , LOG_INFO );
2017-06-10 22:11:12 +02:00
}
2016-06-30 00:38:13 +02:00
// Create user used to create the admin user
2011-09-29 22:21:57 +02:00
$createuser = new User ( $db );
$createuser -> id = 0 ;
2016-06-30 00:38:13 +02:00
$createuser -> admin = 1 ;
2017-06-10 22:11:12 +02:00
2016-06-30 00:38:13 +02:00
// Set admin user
2011-09-29 22:21:57 +02:00
$newuser = new User ( $db );
2011-11-04 02:00:19 +01:00
$newuser -> lastname = 'SuperAdmin' ;
$newuser -> firstname = '' ;
2016-02-22 18:45:00 +01:00
$newuser -> login = $login ;
$newuser -> pass = $pass ;
2011-09-29 22:21:57 +02:00
$newuser -> admin = 1 ;
$newuser -> entity = 0 ;
$conf -> global -> USER_MAIL_REQUIRED = 0 ; // Force global option to be sure to create a new user with no email
$result = $newuser -> create ( $createuser , 1 );
if ( $result > 0 )
{
2016-02-22 18:45:00 +01:00
print $langs -> trans ( " AdminLoginCreatedSuccessfuly " , $login ) . " <br> " ;
2011-09-29 22:21:57 +02:00
$success = 1 ;
}
else
{
if ( $newuser -> error == 'ErrorLoginAlreadyExists' )
{
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: AdminLoginAlreadyExists' , LOG_WARNING );
2016-02-22 18:45:00 +01:00
print '<br><div class="warning">' . $langs -> trans ( " AdminLoginAlreadyExists " , $login ) . " </div><br> " ;
2011-09-29 22:21:57 +02:00
$success = 1 ;
}
else
{
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: FailedToCreateAdminLogin ' . $newuser -> error , LOG_ERR );
2011-09-29 22:21:57 +02:00
print '<br><div class="error">' . $langs -> trans ( " FailedToCreateAdminLogin " ) . ' ' . $newuser -> error . '</div><br><br>' ;
}
}
if ( $success )
{
2017-06-27 18:35:10 +02:00
// Insert MAIN_VERSION_FIRST_INSTALL in a dedicated transaction. So if it fails (when first install was already done), we can do other following requests.
2011-09-29 22:21:57 +02:00
$db -> begin ();
2017-06-10 22:11:12 +02:00
dolibarr_install_syslog ( 'step5: set MAIN_VERSION_FIRST_INSTALL const to ' . $targetversion , LOG_DEBUG );
$resql = $db -> query ( " INSERT INTO " . MAIN_DB_PREFIX . " const(name,value,type,visible,note,entity) values( " . $db -> encrypt ( 'MAIN_VERSION_FIRST_INSTALL' , 1 ) . " , " . $db -> encrypt ( $targetversion , 1 ) . " ,'chaine',0,'Dolibarr version when first install',0) " );
2017-06-27 18:35:10 +02:00
if ( $resql )
{
$conf -> global -> MAIN_VERSION_FIRST_INSTALL = $targetversion ;
$db -> commit ();
}
else
{
//if (! $resql) dol_print_error($db,'Error in setup program'); // We ignore errors. Key may already exists
$db -> commit ();
}
$db -> begin ();
2017-06-10 22:11:12 +02:00
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: set MAIN_VERSION_LAST_INSTALL const to ' . $targetversion , LOG_DEBUG );
2011-11-23 21:43:25 +01:00
$resql = $db -> query ( " DELETE FROM " . MAIN_DB_PREFIX . " const WHERE " . $db -> decrypt ( 'name' ) . " ='MAIN_VERSION_LAST_INSTALL' " );
2011-09-29 22:21:57 +02:00
if ( ! $resql ) dol_print_error ( $db , 'Error in setup program' );
2017-06-10 22:11:12 +02:00
$resql = $db -> query ( " INSERT INTO " . MAIN_DB_PREFIX . " const(name,value,type,visible,note,entity) values( " . $db -> encrypt ( 'MAIN_VERSION_LAST_INSTALL' , 1 ) . " , " . $db -> encrypt ( $targetversion , 1 ) . " ,'chaine',0,'Dolibarr version when last install',0) " );
2011-09-29 22:21:57 +02:00
if ( ! $resql ) dol_print_error ( $db , 'Error in setup program' );
$conf -> global -> MAIN_VERSION_LAST_INSTALL = $targetversion ;
if ( $useforcedwizard )
{
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: set MAIN_REMOVE_INSTALL_WARNING const to 1' , LOG_DEBUG );
2011-11-23 21:43:25 +01:00
$resql = $db -> query ( " DELETE FROM " . MAIN_DB_PREFIX . " const WHERE " . $db -> decrypt ( 'name' ) . " ='MAIN_REMOVE_INSTALL_WARNING' " );
2011-09-29 22:21:57 +02:00
if ( ! $resql ) dol_print_error ( $db , 'Error in setup program' );
2011-11-23 21:43:25 +01:00
$resql = $db -> query ( " INSERT INTO " . MAIN_DB_PREFIX . " const(name,value,type,visible,note,entity) values( " . $db -> encrypt ( 'MAIN_REMOVE_INSTALL_WARNING' , 1 ) . " , " . $db -> encrypt ( 1 , 1 ) . " ,'chaine',1,'Disable install warnings',0) " );
2011-09-29 22:21:57 +02:00
if ( ! $resql ) dol_print_error ( $db , 'Error in setup program' );
$conf -> global -> MAIN_REMOVE_INSTALL_WARNING = 1 ;
}
// If we ask to force some modules to be enabled
if ( ! empty ( $force_install_module ))
{
if ( ! defined ( 'DOL_DOCUMENT_ROOT' ) && ! empty ( $dolibarr_main_document_root )) define ( 'DOL_DOCUMENT_ROOT' , $dolibarr_main_document_root );
$tmparray = explode ( ',' , $force_install_module );
foreach ( $tmparray as $modtoactivate )
{
$modtoactivatenew = preg_replace ( '/\.class\.php$/i' , '' , $modtoactivate );
2011-10-13 01:18:57 +02:00
print $langs -> trans ( " ActivateModule " , $modtoactivatenew ) . '<br>' ;
2011-06-08 13:23:55 +02:00
$file = $modtoactivatenew . '.class.php' ;
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: activate module file=' . $file );
2011-10-24 14:11:49 +02:00
$res = dol_include_once ( " /core/modules/ " . $file );
2011-06-12 03:30:58 +02:00
2013-03-27 20:48:57 +01:00
$res = activateModule ( $modtoactivatenew , 1 );
2016-09-30 18:26:32 +02:00
if ( ! empty ( $res [ 'errors' ])) print 'ERROR in activating module file=' . $file ;
2011-09-29 22:21:57 +02:00
}
}
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: remove MAIN_NOT_INSTALLED const' );
2011-11-23 21:43:25 +01:00
$resql = $db -> query ( " DELETE FROM " . MAIN_DB_PREFIX . " const WHERE " . $db -> decrypt ( 'name' ) . " ='MAIN_NOT_INSTALLED' " );
2011-09-29 22:21:57 +02:00
if ( ! $resql ) dol_print_error ( $db , 'Error in setup program' );
$db -> commit ();
}
}
else
{
print $langs -> trans ( " ErrorFailedToConnect " ) . " <br> " ;
}
}
// If upgrade
2012-09-04 12:27:43 +02:00
elseif ( empty ( $action ) || preg_match ( '/upgrade/i' , $action ))
2011-09-29 22:21:57 +02:00
{
2015-05-12 19:01:01 +02:00
if ( $db -> connected )
2011-09-29 22:21:57 +02:00
{
$conf -> setValues ( $db );
2018-02-14 14:50:22 +01:00
// Reset forced setup after the setValues
if ( defined ( 'SYSLOG_FILE' )) $conf -> global -> SYSLOG_FILE = constant ( 'SYSLOG_FILE' );
$conf -> global -> MAIN_ENABLE_LOG_TO_HTML = 1 ;
2011-09-29 22:21:57 +02:00
// Define if we need to update the MAIN_VERSION_LAST_UPGRADE value in database
$tagdatabase = false ;
if ( empty ( $conf -> global -> MAIN_VERSION_LAST_UPGRADE )) $tagdatabase = true ; // We don't know what it was before, so now we consider we are version choosed.
else
{
$mainversionlastupgradearray = preg_split ( '/[.-]/' , $conf -> global -> MAIN_VERSION_LAST_UPGRADE );
$targetversionarray = preg_split ( '/[.-]/' , $targetversion );
if ( versioncompare ( $targetversionarray , $mainversionlastupgradearray ) > 0 ) $tagdatabase = true ;
}
if ( $tagdatabase )
{
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: set MAIN_VERSION_LAST_UPGRADE const to value ' . $targetversion );
2011-11-23 21:43:25 +01:00
$resql = $db -> query ( " DELETE FROM " . MAIN_DB_PREFIX . " const WHERE " . $db -> decrypt ( 'name' ) . " ='MAIN_VERSION_LAST_UPGRADE' " );
2011-09-29 22:21:57 +02:00
if ( ! $resql ) dol_print_error ( $db , 'Error in setup program' );
2011-11-23 21:43:25 +01:00
$resql = $db -> query ( " INSERT INTO " . MAIN_DB_PREFIX . " const(name,value,type,visible,note,entity) VALUES ( " . $db -> encrypt ( 'MAIN_VERSION_LAST_UPGRADE' , 1 ) . " , " . $db -> encrypt ( $targetversion , 1 ) . " ,'chaine',0,'Dolibarr version for last upgrade',0) " );
2011-09-29 22:21:57 +02:00
if ( ! $resql ) dol_print_error ( $db , 'Error in setup program' );
$conf -> global -> MAIN_VERSION_LAST_UPGRADE = $targetversion ;
}
else
{
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( 'step5: we run an upgrade to version ' . $targetversion . ' but database was already upgraded to ' . $conf -> global -> MAIN_VERSION_LAST_UPGRADE . '. We keep MAIN_VERSION_LAST_UPGRADE as it is.' );
2011-09-29 22:21:57 +02:00
}
}
else
{
print $langs -> trans ( " ErrorFailedToConnect " ) . " <br> " ;
}
}
else
{
2015-07-06 16:33:45 +02:00
dol_print_error ( '' , 'step5.php: unknown choice of action' );
2011-09-29 22:21:57 +02:00
}
// May fail if parameter already defined
2011-11-23 21:43:25 +01:00
$resql = $db -> query ( " INSERT INTO " . MAIN_DB_PREFIX . " const(name,value,type,visible,note,entity) VALUES ( " . $db -> encrypt ( 'MAIN_LANG_DEFAULT' , 1 ) . " , " . $db -> encrypt ( $setuplang , 1 ) . " ,'chaine',0,'Default language',1) " );
2011-09-29 22:21:57 +02:00
//if (! $resql) dol_print_error($db,'Error in setup program');
$db -> close ();
2004-01-27 15:36:40 +01:00
}
2004-01-30 17:00:18 +01:00
2005-06-26 00:06:00 +02:00
2009-08-10 14:54:37 +02:00
// Create lock file
2005-10-03 03:14:50 +02:00
// If first install
2018-01-28 10:57:01 +01:00
if ( $action == " set " && $success )
{
2011-09-29 22:21:57 +02:00
if ( empty ( $conf -> global -> MAIN_VERSION_LAST_UPGRADE ) || ( $conf -> global -> MAIN_VERSION_LAST_UPGRADE == DOL_VERSION ))
{
// Install is finished
print $langs -> trans ( " SystemIsInstalled " ) . " <br> " ;
$createlock = 0 ;
2018-01-28 10:57:01 +01:00
if ( ! empty ( $force_install_lockinstall ) || ! empty ( $conf -> global -> MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE ))
2011-09-29 22:21:57 +02:00
{
// Install is finished, we create the lock file
$lockfile = DOL_DATA_ROOT . '/install.lock' ;
$fp = @ fopen ( $lockfile , " w " );
if ( $fp )
{
2018-01-28 10:57:01 +01:00
if ( empty ( $force_install_lockinstall ) || $force_install_lockinstall == 1 ) $force_install_lockinstall = 444 ; // For backward compatibility
2010-08-20 00:32:51 +02:00
fwrite ( $fp , " This is a lock file to prevent use of install pages (set with permission " . $force_install_lockinstall . " ) " );
2011-09-29 22:21:57 +02:00
fclose ( $fp );
@ chmod ( $lockfile , octdec ( $force_install_lockinstall ));
$createlock = 1 ;
}
}
if ( empty ( $createlock ))
{
print '<div class="warning">' . $langs -> trans ( " WarningRemoveInstallDir " ) . " </div> " ;
}
print " <br> " ;
print $langs -> trans ( " YouNeedToPersonalizeSetup " ) . " <br><br> " ;
2016-02-22 18:45:00 +01:00
print '<div class="center"><a href="../admin/index.php?mainmenu=home&leftmenu=setup' . ( isset ( $login ) ? '&username=' . urlencode ( $login ) : '' ) . '">' ;
2011-09-29 22:21:57 +02:00
print $langs -> trans ( " GoToSetupArea " );
2014-11-25 20:13:43 +01:00
print '</a></div>' ;
2011-09-29 22:21:57 +02:00
}
else
{
// If here MAIN_VERSION_LAST_UPGRADE is not empty
print $langs -> trans ( " VersionLastUpgrade " ) . ': <b><font class="ok">' . $conf -> global -> MAIN_VERSION_LAST_UPGRADE . '</font></b><br>' ;
print $langs -> trans ( " VersionProgram " ) . ': <b><font class="ok">' . DOL_VERSION . '</font></b><br>' ;
print $langs -> trans ( " MigrationNotFinished " ) . '<br>' ;
print " <br> " ;
2014-11-25 20:13:43 +01:00
print '<div class="center"><a href="' . $dolibarr_main_url_root . '/install/index.php">' ;
2011-09-29 22:21:57 +02:00
print $langs -> trans ( " GoToUpgradePage " );
2014-11-25 20:13:43 +01:00
print '</a></div>' ;
2011-09-29 22:21:57 +02:00
}
2005-10-03 03:14:50 +02:00
}
// If upgrade
2012-09-04 12:27:43 +02:00
elseif ( empty ( $action ) || preg_match ( '/upgrade/i' , $action ))
2005-10-03 03:14:50 +02:00
{
2011-09-29 22:21:57 +02:00
if ( empty ( $conf -> global -> MAIN_VERSION_LAST_UPGRADE ) || ( $conf -> global -> MAIN_VERSION_LAST_UPGRADE == DOL_VERSION ))
{
// Upgrade is finished
print $langs -> trans ( " SystemIsUpgraded " ) . " <br> " ;
$createlock = 0 ;
2018-01-28 10:57:01 +01:00
if ( ! empty ( $force_install_lockinstall ) || ! empty ( $conf -> global -> MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE ))
2011-09-29 22:21:57 +02:00
{
// Upgrade is finished, we create the lock file
$lockfile = DOL_DATA_ROOT . '/install.lock' ;
$fp = @ fopen ( $lockfile , " w " );
if ( $fp )
{
2018-01-28 10:57:01 +01:00
if ( empty ( $force_install_lockinstall ) || $force_install_lockinstall == 1 ) $force_install_lockinstall = 444 ; // For backward compatibility
2011-09-29 22:21:57 +02:00
fwrite ( $fp , " This is a lock file to prevent use of install pages (set with permission " . $force_install_lockinstall . " ) " );
fclose ( $fp );
2010-08-20 00:32:51 +02:00
@ chmod ( $lockfile , octdec ( $force_install_lockinstall ));
2011-09-29 22:21:57 +02:00
$createlock = 1 ;
}
}
if ( empty ( $createlock ))
{
print '<br><div class="warning">' . $langs -> trans ( " WarningRemoveInstallDir " ) . " </div> " ;
}
2017-05-23 15:13:52 +02:00
print " <br><br> " ;
2011-09-29 22:21:57 +02:00
2016-02-22 18:45:00 +01:00
print '<div class="center"><a href="../index.php?mainmenu=home' . ( isset ( $login ) ? '&username=' . urlencode ( $login ) : '' ) . '">' ;
2017-05-23 15:13:52 +02:00
print $langs -> trans ( " GoToDolibarr " ) . '...' ;
print '</a></div><br>' ;
2011-09-29 22:21:57 +02:00
}
else
{
// If here MAIN_VERSION_LAST_UPGRADE is not empty
print $langs -> trans ( " VersionLastUpgrade " ) . ': <b><font class="ok">' . $conf -> global -> MAIN_VERSION_LAST_UPGRADE . '</font></b><br>' ;
print $langs -> trans ( " VersionProgram " ) . ': <b><font class="ok">' . DOL_VERSION . '</font></b>' ;
print " <br> " ;
2014-11-25 20:13:43 +01:00
print '<div class="center"><a href="../install/index.php">' ;
2011-09-29 22:21:57 +02:00
print $langs -> trans ( " GoToUpgradePage " );
2014-11-25 20:13:43 +01:00
print '</a></div>' ;
2011-09-29 22:21:57 +02:00
}
2009-08-05 12:33:49 +02:00
}
else
{
2015-07-06 16:33:45 +02:00
dol_print_error ( '' , 'step5.php: unknown choice of action' );
2009-08-05 12:33:49 +02:00
}
2004-02-05 00:24:24 +01:00
2005-06-26 00:06:00 +02:00
2009-08-10 14:54:37 +02:00
2008-03-03 02:56:46 +01:00
// Clear cache files
clearstatcache ();
2006-06-17 16:13:49 +02:00
2018-04-12 19:13:06 +02:00
$ret = 0 ;
if ( $error && isset ( $argv [ 1 ])) $ret = 1 ;
dolibarr_install_syslog ( " Exit " . $ret );
2015-07-06 16:33:45 +02:00
dolibarr_install_syslog ( " --- step5: Dolibarr setup finished " );
2005-10-30 02:07:00 +01:00
2008-03-03 02:56:46 +01:00
pFooter ( 1 , $setuplang );
2018-04-12 19:13:06 +02:00
// Return code if ran from command line
if ( $ret ) exit ( $ret );