New: Ajout methode DDLCreateUser

This commit is contained in:
Laurent Destailleur
2007-05-08 21:54:11 +00:00
parent 7d8fafe48d
commit 7920f6186e
4 changed files with 492 additions and 484 deletions

View File

@@ -62,8 +62,8 @@ $main_data_dir=isset($_POST["main_data_dir"])?$_POST["main_data_dir"]:'';
if (! $main_data_dir) { $main_data_dir="$main_dir/documents"; }
/*
* Actions
*/
* Actions
*/
if ($_POST["action"] == "set")
{
umask(0);
@@ -163,10 +163,9 @@ if ($_POST["action"] == "set")
}
/***************************************************************************
*
* Creation des r<>pertoires
*
***************************************************************************/
// Creation des sous-r<>pertoires main_data_dir
@@ -229,9 +228,8 @@ if ($_POST["action"] == "set")
}
}
/*
* Base de donn<6E>es
*
/**
* Cr<43>ation des Bases de donn<6E>es
*/
if (! $error)
{
@@ -248,15 +246,13 @@ if ($_POST["action"] == "set")
$passroot=isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:"";
/*
/**
* Si creation utilisateur admin demand<6E>e, on le cr<63>e
*/
if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on")
{
dolibarr_syslog("Creation de l'utilisateur: ".$dolibarr_main_db_user." choix base: ".$choix);
if ($choix == 1) //choix 1=mysql
{
//print $conf->db->host." , ".$conf->db->name." , ".$conf->db->user." , ".$conf->db->pass;
// Creation handler de base, verification du support et connexion
@@ -271,27 +267,10 @@ if ($_POST["action"] == "set")
{
if ($db->connected)
{
$sql = "INSERT INTO user ";
$sql.= "(Host,User,password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)";
$sql.= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_user',password('$dolibarr_main_db_pass')";
$sql.= ",'Y','Y','Y','Y','Y','Y','Y','Y');";
$result=$db->DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass);
//print "$sql<br>\n";
$db->query($sql);
$sql = "INSERT INTO db ";
$sql.= "(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)";
$sql.= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_name','$dolibarr_main_db_user'";
$sql.= ",'Y','Y','Y','Y','Y','Y','Y','Y');";
//print "$sql<br>\n";
$resql=$db->query($sql);
if ($resql)
if ($result > 0)
{
dolibarr_syslog("flush privileges");
$db->query("FLUSH Privileges;");
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
@@ -343,80 +322,6 @@ if ($_POST["action"] == "set")
$error++;
}
}
}
else //choix 2=postgresql
{
//print $conf->db->host." , ".$conf->db->name." , ".$conf->db->user." , ".$conf->db->pass;
// Creation handler de base, verification du support et connexion
$db = new DoliDb($conf->db->type,$conf->db->host,$userroot,$passroot,$conf->db->name);
if ($db->error)
{
print $langs->trans("ThisPHPDoesNotSupportTypeBase",'mysql');
$error++;
}
if (! $error)
{
if ($db->connected)
{
$nom = $dolibarr_main_db_user;
$sql = "create user \"".$nom."\" with password '".$dolibarr_main_db_pass."';";
//print $query_str;
$resql = $db->query($sql);
if ($resql)
{
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td>'.$langs->trans("OK").'</td>';
print '</tr>';
}
else
{
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
{
dolibarr_syslog("User already exists");
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td>'.$langs->trans("LoginAlreadyExists").'</td></tr>';
}
else
{
dolibarr_syslog("Failed to create user");
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td>'.$langs->trans("Error").' '.$db->error()."</td></tr>";
}
}
}
else
{
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td>'.$langs->trans("Error").'</td>';
print '</tr>';
// Affiche aide diagnostique
print '<tr><td colspan="2"><br>';
print 'Vous avez demand<6E> la cr<63>ation du login Dolibarr "<b>'.$dolibarr_main_db_user.'</b>", mais pour cela, ';
print 'Dolibarr doit se connecter sur le serveur "<b>'.$dolibarr_main_db_host.'</b>" via le super utilisateur "<b>'.$userroot.'</b>".<br>';
print 'La connexion ayant <20>chou<6F>, les param<61>tres du serveur ou du super utilisateur sont peut-etre incorrects.<br>';
print $langs->trans("ErrorGoBackAndCorrectParameters").'<br><br>';
print '</td></tr>';
$error++;
}
}
}
} // Fin si "creation utilisateur"

View File

@@ -779,6 +779,48 @@ class DoliDb
else
return 1;
}
/**
\brief Cr<43>e un utilisateur
\param dolibarr_main_db_host Ip serveur
\param dolibarr_main_db_user Nom user <20> cr<63>er
\param dolibarr_main_db_pass Mot de passe user <20> cr<63>er
\return int <0 si KO, >=0 si OK
*/
function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass)
{
$sql = "INSERT INTO user ";
$sql.= "(Host,User,password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)";
$sql.= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_user',password('$dolibarr_main_db_pass')";
$sql.= ",'Y','Y','Y','Y','Y','Y','Y','Y');";
dolibarr_syslog("mysql.lib::DDLCreateUser sql=".$sql);
$resql=$this->query($sql);
if (! $resql)
{
return -1;
}
$sql = "INSERT INTO db ";
$sql.= "(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)";
$sql.= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_name','$dolibarr_main_db_user'";
$sql.= ",'Y','Y','Y','Y','Y','Y','Y','Y');";
dolibarr_syslog("mysql.lib::DDLCreateUser sql=".$sql);
$resql=$this->query($sql);
if (! $resql)
{
return -1;
}
$sql="FLUSH Privileges";
dolibarr_syslog("mysql.lib::DDLCreateUser sql=".$sql);
$resql=$this->query($sql);
return 1;
}
}
?>

View File

@@ -785,6 +785,46 @@ class DoliDb
return 1;
}
/**
\brief Cr<43>e un utilisateur
\param dolibarr_main_db_host Ip serveur
\param dolibarr_main_db_user Nom user <20> cr<63>er
\param dolibarr_main_db_pass Mot de passe user <20> cr<63>er
\return int <0 si KO, >=0 si OK
*/
function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass)
{
$sql = "INSERT INTO user ";
$sql.= "(Host,User,password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)";
$sql.= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_user',password('$dolibarr_main_db_pass')";
$sql.= ",'Y','Y','Y','Y','Y','Y','Y','Y');";
dolibarr_syslog("mysql.lib::DDLCreateUser sql=".$sql);
$resql=$this->query($sql);
if (! $resql)
{
return -1;
}
$sql = "INSERT INTO db ";
$sql.= "(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)";
$sql.= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_name','$dolibarr_main_db_user'";
$sql.= ",'Y','Y','Y','Y','Y','Y','Y','Y');";
dolibarr_syslog("mysql.lib::DDLCreateUser sql=".$sql);
$resql=$this->query($sql);
if (! $resql)
{
return -1;
}
$sql="FLUSH Privileges";
dolibarr_syslog("mysql.lib::DDLCreateUser sql=".$sql);
$resql=$this->query($sql);
return 1;
}
}
?>

View File

@@ -609,6 +609,27 @@ class DoliDb
return $this->results;
}
/**
\brief Cr<43>e un utilisateur
\param dolibarr_main_db_host Ip serveur
\param dolibarr_main_db_user Nom user <20> cr<63>er
\param dolibarr_main_db_pass Mot de passe user <20> cr<63>er
\return int <0 si KO, >=0 si OK
*/
function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass)
{
$sql = "create user \"".$dolibarr_main_db_user."\" with password '".$dolibarr_main_db_pass."'";
dolibarr_syslog("mysql.lib::DDLCreateUser sql=".$sql);
$resql=$this->query($sql);
if (! $resql)
{
return -1;
}
return 1;
}
}
?>