Si on relance install, on peut créer un nouveau compte admin.

Si on est en mode crypté, le mot de passe est crypté pour ce nouveau compte.
This commit is contained in:
Laurent Destailleur 2006-10-19 18:51:35 +00:00
parent e543268a3f
commit 6ee57fec28
2 changed files with 76 additions and 48 deletions

View File

@ -88,7 +88,7 @@ if ($_POST["action"] == "set" || $_POST["action"] == "upgrade")
$conf->db->name = $dolibarr_main_db_name; $conf->db->name = $dolibarr_main_db_name;
$conf->db->user = $dolibarr_main_db_user; $conf->db->user = $dolibarr_main_db_user;
$conf->db->pass = $dolibarr_main_db_pass; $conf->db->pass = $dolibarr_main_db_pass;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name); $db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name);
$ok = 0; $ok = 0;
@ -104,46 +104,74 @@ if ($_POST["action"] == "set" || $_POST["action"] == "upgrade")
{ {
if ($db->connected == 1) if ($db->connected == 1)
{ {
$conf->setValues($db);
$code=0;
// Recherche du code AD99 le plus élevé.
$sql.= "select code from llx_user where code like 'AD%'";
$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$codefound=substr($obj->code,2);
if (is_numeric($codefound) && $codefound > $code) $code=$codefound;
//print "Found code=$code";
$i++;
}
}
$code++;
$code=sprintf("%02d",$code);
$sql = "INSERT INTO llx_user(datec,login,pass,admin,name,code) VALUES (now()"; $sql = "INSERT INTO llx_user(datec,login,pass,admin,name,code) VALUES (now()";
$sql .= ",'".$_POST["login"]."'"; $sql.= ",'".$_POST["login"]."'";
$sql .= ",'".$_POST["pass"]."'"; $sql.= ",'".($conf->global->DATABASE_PWD_ENCRYPTED?md5($_POST["pass"]):$_POST["pass"])."'";
$sql .= ",1,'Administrateur','ADM')"; $sql.= ",1,'Administrateur','AD".$code."')";
} //print "sql=".$sql." ".mysql_errno($db->db);
$resql=$db->query($sql);
$resql=$db->query($sql); if ($resql)
{
if ($resql) print $langs->trans("AdminLoginCreatedSuccessfuly",$_POST["login"])."<br>";
{ $success = 1;
print $langs->trans("AdminLoginCreatedSuccessfuly")."<br>"; }
$success = 1; else
} {
else if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
{ {
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') print $langs->trans("AdminLoginAlreadyExists",$_POST["login"])."<br>";
{ $success = 1;
print $langs->trans("AdminLoginAlreadyExists",$_POST["login"])."<br>"; }
$success = 1; else
} {
else { print $langs->trans("FailedToCreateAdminLogin")."<br>";
print $langs->trans("FailedToCreateAdminLogin")."<br>"; }
} }
}
if ($success)
if ($success) {
{ $db->query("DELETE FROM llx_const WHERE name='MAIN_NOT_INSTALLED'");
$db->query("DELETE FROM llx_const WHERE name='MAIN_NOT_INSTALLED'");
// Si install non Français, on configure pour fonctionner en mode internationnal
// Si install non Français, on configure pour fonctionner en mode internationnal if ($langs->defaultlang != "fr_FR")
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_BARRETOP';"); $db->query("UPDATE llx_const set value='eldy_backoffice.php' WHERE name='MAIN_MENU_BARRELEFT';");
$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_BARRETOP';"); $db->query("UPDATE llx_const set value='eldy_frontoffice.php' WHERE name='MAIN_MENUFRONT_BARRELEFT';");
$db->query("UPDATE llx_const set value='eldy_frontoffice.php' WHERE name='MAIN_MENUFRONT_BARRELEFT';"); }
}
}
} }
else
{
print $langs->trans("Error")."<br>";
}
} }
$db->query("UPDATE llx_const set value='".$setuplang."' WHERE name='MAIN_LANG_DEFAULT';"); $db->query("UPDATE llx_const set value='".$setuplang."' WHERE name='MAIN_LANG_DEFAULT';");

View File

@ -106,14 +106,14 @@ if (! session_id() && ! isset($_SESSION["dol_user"]) && ! isset($_SESSION["dol_
$pear = $dolibarr_main_db_type.'://'.$dolibarr_main_db_user.':'.$dolibarr_main_db_pass.'@'.$dolibarr_main_db_host.'/'.$dolibarr_main_db_name; $pear = $dolibarr_main_db_type.'://'.$dolibarr_main_db_user.':'.$dolibarr_main_db_pass.'@'.$dolibarr_main_db_host.'/'.$dolibarr_main_db_name;
if ($conf->global->DATABASE_PWD_ENCRYPTED) if ($conf->global->DATABASE_PWD_ENCRYPTED)
{ {
$cryptType = "md5"; $cryptType = "md5";
} }
else else
{ {
$cryptType = "none"; $cryptType = "none";
} }
$params = array( $params = array(
"dsn" => $pear, "dsn" => $pear,