From 6d6a8270cbf5fe0d7553ce4ba45a011e95bc1a16 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Sun, 16 Dec 2007 20:05:55 +0000 Subject: [PATCH] =?UTF-8?q?Fix:=20A=20l'install=20le=20mot=20de=20passe=20?= =?UTF-8?q?du=20compte=20admin=20est=20sauvegard=E9=20de=20mani=E8re=20inc?= =?UTF-8?q?ompl=E8te.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/install/etape5.php | 28 +++++++++++++++++----------- htdocs/langs/en_US/errors.lang | 1 + htdocs/langs/en_US/install.lang | 4 ++-- htdocs/langs/fr_FR/errors.lang | 1 + htdocs/langs/fr_FR/install.lang | 4 ++-- htdocs/user.class.php | 9 +++++---- htdocs/user/fiche.php | 1 + 7 files changed, 29 insertions(+), 19 deletions(-) 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); - - dolibarr_install_syslog('install/etape5.php sql='.$sql, LOG_INFO); - $resql=$db->query($sql); - if ($resql) + // 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) { print $langs->trans("AdminLoginCreatedSuccessfuly",$_POST["login"])."<br>"; $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 '<br><div class="warning">'.$langs->trans("AdminLoginAlreadyExists",$_POST["login"])."</div><br>"; $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 '<b>%s</b>' 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 '<b>%s</b>' 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 '<b>%s</b>' 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 '<b>%s</b>' 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='<div class="error">'.$langs->trans("UserCannotBeDelete").'</div>'; } else -- GitLab