diff --git a/htdocs/install/etape5.php b/htdocs/install/etape5.php
index 11dac0c0f93..b6e5e00feae 100644
--- a/htdocs/install/etape5.php
+++ b/htdocs/install/etape5.php
@@ -99,24 +99,30 @@ if ($_POST["action"] == "set" || $_POST["action"] == "upgrade")
{
$conf->setValues($db);
- $sql = "INSERT INTO llx_user(datec,login,pass,admin,name) VALUES (now()";
- $sql.= ",'".$_POST["login"]."'";
- $sql.= ",'".($conf->password_encrypted?md5($_POST["pass"]):$_POST["pass"])."'";
- $sql.= ",1,'Administrateur')";
- //print "sql=".$sql." ".mysql_errno($db->db);
+ // Create user
+ include_once(DOL_DOCUMENT_ROOT ."/user.class.php");
- dolibarr_install_syslog('install/etape5.php sql='.$sql, LOG_INFO);
- $resql=$db->query($sql);
- if ($resql)
+ $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)
{
print $langs->trans("AdminLoginCreatedSuccessfuly",$_POST["login"])."
";
$success = 1;
}
else
{
- if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
+ if ($newuser->error == 'ErrorLoginAlreadyExists')
{
- dolibarr_install_syslog('install/etape5.php DB_ERROR_RECORD_ALREADY_EXISTS', LOG_WARNING);
+ dolibarr_install_syslog('install/etape5.php ErrorLoginAlreadyExists', LOG_WARNING);
print '
'.$langs->trans("AdminLoginAlreadyExists",$_POST["login"])."
";
$success = 1;
}
diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
index 0f31f2447d8..7b92d5a69b4 100644
--- a/htdocs/langs/en_US/errors.lang
+++ b/htdocs/langs/en_US/errors.lang
@@ -13,3 +13,4 @@ ErrorBadSupplierCodeSyntax=Bad syntax for supplier code
ErrorSupplierCodeRequired=Supplier code required
ErrorSupplierCodeAlreadyUsed=Supplier code already used
ErrorBadParameters=Bad parameters
+UserCannotBeDelete=User can not be deleted. May be it is associated on Dolibarr entities.
\ No newline at end of file
diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang
index 82aa53620d7..e303f6fe5ad 100644
--- a/htdocs/langs/en_US/install.lang
+++ b/htdocs/langs/en_US/install.lang
@@ -73,7 +73,7 @@ SetupEnd=End of setup
SystemIsInstalled=Your system is now installed.
SystemIsUpgraded=Dolibarr has been upgraded successfully.
YouNeedToPersonalizeSetup=Now you must configure Dolibarr to match your needs (Look choice, functionnalities, ...). For this, click on the following link:
-AdminLoginCreatedSuccessfuly=Administrator login created successfuly.
+AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfuly.
GoToSetupArea=Go to setup area
Examples=Examples
WithNoSlashAtTheEnd=Without the slash "/" at the end
@@ -81,7 +81,7 @@ DirectoryRecommendation=It is recommanded to put this directry out of directory
LoginAlreadyExists=Already exists
DolibarrAdminLogin=Dolibarr admin login
FailedToCreateAdminLogin=Failed to create Dolibarr administator account.
-AdminLoginAlreadyExists=Dolibarr administrator account '%s' already exists.
+AdminLoginAlreadyExists=Dolibarr administrator account '%s' already exists.
WarningRemoveInstallDir=Warning, for security reasons, once install or upgrade is finished, you have to remove the install directory.
ThisPHPDoesNotSupportTypeBase=This PHP system does not support interfaces to access database type %s
FunctionNotAvailableInThisPHP=Not available on this PHP
diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang
index a8780f69920..3953d40c58e 100644
--- a/htdocs/langs/fr_FR/errors.lang
+++ b/htdocs/langs/fr_FR/errors.lang
@@ -13,3 +13,4 @@ ErrorBadSupplierCodeSyntax=La syntaxe du code fournisseur est incorrect
ErrorSupplierCodeRequired=Code fournisseur obligatoire
ErrorSupplierCodeAlreadyUsed=Code fournisseur deja utilise
ErrorBadParameters=Parametres incorrects
+UserCannotBeDelete=L'utilisateur ne peut pas etre supprimée. Peut-être est-il associé à des éléments de Dolibarr.
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang
index bf0fb35387e..d530b9eddff 100644
--- a/htdocs/langs/fr_FR/install.lang
+++ b/htdocs/langs/fr_FR/install.lang
@@ -75,7 +75,7 @@ SetupEnd=Fin de l'installation
SystemIsInstalled=Votre système est maintenant installé.
SystemIsUpgraded=Dolibarr a été mis à jour avec succès.
YouNeedToPersonalizeSetup=Vous devez maintenant configurer Dolibarr selon vos besoins (Choix de l'apparence, des fonctionnalités, etc.). Pour cela, cliquez sur le lien ci-dessous:
-AdminLoginCreatedSuccessfuly=Création du compte administrateur réussie.
+AdminLoginCreatedSuccessfuly=Création du compte administrateur Dolibarr '%s' réussie.
GoToSetupArea=Accès à l'espace de configuration
Examples=Exemples
WithNoSlashAtTheEnd=Sans le slash "/" à la fin
@@ -83,7 +83,7 @@ DirectoryRecommendation=Il est recommand
LoginAlreadyExists=Existe déjà
DolibarrAdminLogin=Login de l'utilisateur administrateur de Dolibarr
FailedToCreateAdminLogin=Echec de la création du compte administrateur Dolibarr.
-AdminLoginAlreadyExists=Compte administrateur Dolibarr '%s' déjà existant.
+AdminLoginAlreadyExists=Compte administrateur Dolibarr '%s' déjà existant.
WarningRemoveInstallDir=Attention, pour des raisons de sécurité, une fois l'installation terminée, il est nécessaire de supprimer le répertoire install.
ThisPHPDoesNotSupportTypeBase=Le système PHP ne supporta pas les interfaces d'accès pour les bases %s
FunctionNotAvailableInThisPHP=Non disponible sur ce PHP
diff --git a/htdocs/user.class.php b/htdocs/user.class.php
index 81ce9b61acf..35382cad445 100644
--- a/htdocs/user.class.php
+++ b/htdocs/user.class.php
@@ -682,13 +682,14 @@ class User extends CommonObject
*/
function create($user='',$notrigger=0)
{
- global $conf,$langs;
+ global $conf;
// Nettoyage parametres
$this->login = trim($this->login);
- dolibarr_syslog("User::Create login=".$this->login.", user=".$user->id);
+ dolibarr_syslog("User::Create login=".$this->login.", user=".(is_object($user)?$user->id:''));
+ $error=0;
$this->db->begin();
$sql = "SELECT login FROM ".MAIN_DB_PREFIX."user";
@@ -701,7 +702,7 @@ class User extends CommonObject
if ($num)
{
- $this->error = $langs->trans("ErrorLoginAlreadyExists");
+ $this->error = 'ErrorLoginAlreadyExists';
return -6;
}
else
@@ -731,7 +732,7 @@ class User extends CommonObject
return -4;
}
- if ($conf->global->STOCK_USERSTOCK == 1 && $conf->global->STOCK_USERSTOCK_AUTOCREATE == 1)
+ if (! empty($conf->global->STOCK_USERSTOCK) && ! empty($conf->global->STOCK_USERSTOCK_AUTOCREATE))
{
require_once(DOL_DOCUMENT_ROOT."/product/stock/entrepot.class.php");
$entrepot = new Entrepot($this->db);
diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php
index 827793e46bc..b60432de77c 100644
--- a/htdocs/user/fiche.php
+++ b/htdocs/user/fiche.php
@@ -114,6 +114,7 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == "yes")
$result = $edituser->delete();
if ($result < 0)
{
+ $langs->load("errors");
$message=''.$langs->trans("UserCannotBeDelete").'
';
}
else