diff --git a/htdocs/install/etape2.php b/htdocs/install/etape2.php index b7e111a7e6ff3492c00b209d71b830100045d31b..885e8ec42901669c6c48c43b79fd68a6d7358ea7 100644 --- a/htdocs/install/etape2.php +++ b/htdocs/install/etape2.php @@ -315,26 +315,6 @@ if ($_POST["action"] == "set") } - /*************************************************************************************** - * - * Positionnement des droits - * - ***************************************************************************************/ - if ($ok) - { - // Droits sur les tables - $grant_query=$db->getGrantForUserQuery($dolibarr_main_db_user); - - if ($grant_query) // Seules les bases qui en ont besoin le definisse - { - if ($db->query($grant_query)) - { - print "<tr><td>Grant User</td><td>".$langs->trans("OK")."</td></tr>"; - } - } - } - - /*************************************************************************************** * * Chargement fichier functions.sql diff --git a/htdocs/lib/databases/mssql.lib.php b/htdocs/lib/databases/mssql.lib.php index 2865d6c1d696bc0135b9cacec3453bdfd2ae956a..aa26756f303fe694d69f326e429aa28c27217a2d 100644 --- a/htdocs/lib/databases/mssql.lib.php +++ b/htdocs/lib/databases/mssql.lib.php @@ -528,6 +528,18 @@ class DoliDb } } + + /** + \brief Escape a string to insert data. + \param stringtoencode String to escape + \return string String escaped + */ + function escape($stringtoencode) + { + return addslashes($stringtoencode); + } + + /** \brief Formatage (par la base de donn�es) d'un champ de la base au format TMS ou Date (YYYY-MM-DD HH:MM:SS) afin de retourner une donn�e toujours au format universel date TMS unix. @@ -655,96 +667,67 @@ class DoliDb } - // Next function are not required. Only minor features use them. - //-------------------------------------------------------------- + // Next function are not required. Only minor features use them. + //-------------------------------------------------------------- - /** - \brief Renvoie l'id de la connexion - \return string Id connexion - */ - function getConnectId() - { - $resql=$this->query('SELECT CONNECTION_ID()'); - $row=$this->fetch_row($resql); - return $row[0]; - } + /** + \brief Renvoie l'id de la connexion + \return string Id connexion + */ + function DDLGetConnectId() + { + $resql=$this->query('SELECT CONNECTION_ID()'); + $row=$this->fetch_row($resql); + return $row[0]; + } - /** - \brief Renvoie la commande sql qui donne les droits � user sur toutes les tables - \param databaseuser User � autoriser - \return string Requete sql - */ - function getGrantForUserQuery($databaseuser) - { - /* - $query = "DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500)) INSERT INTO @tables SELECT '" - $query .= "GRANT SELECT ON '+NAME+' TO ".$databaseuser." FROM sysobjects WHERE TYPE = 'U' AND " - $query .= "NAME NOT LIKE 'SYNC%' DECLARE @rowid int, @sqlstr varchar(500) SET @rowid = 0 " - $query .= "SET @sqlstr = '' DECLARE grant_tbl_cursor CURSOR FOR SELECT ROWID, SQLSTR FROM @tables ORDER BY ROWID" - $query .= "OPEN grant_tbl_cursor FETCH NEXT FROM grant_tbl_cursor INTO @rowid,@sqlstr WHILE @@FETCH_STATUS = 0 " - $query .= "BEGIN EXECUTE (@sqlstr) FETCH NEXT FROM grant_tbl_cursor INTO @rowid,@sqlstr END CLOSE grant_tbl_cursor " - $query .= "DEALLOCATE grant_tbl_cursor" - */ - return ''; - } - - - /** - \brief Retourne le dsn pear - \return dsn - */ - function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name) - { - return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name; - } - - /** - \brief Cr�ation d'une nouvelle base de donn�e - \param database nom de la database � cr�er - \return resource resource d�finie si ok, null si ko - \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mssql, ...) car elles sont deprecated - On force creation de la base avec le charset forcecharset - */ - function DDLCreateDb($database) - { - // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci - $sql = 'CREATE DATABASE '.$database; - $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate; - $ret=$this->query($sql); - if (! $ret) - { - // On r�essaie pour compatibilit� avec mssql < 5.0 - $sql = 'CREATE DATABASE '.$database; - $ret=$this->query($sql); - } + /** + \brief Cr�ation d'une nouvelle base de donn�e + \param database nom de la database � cr�er + \return resource resource d�finie si ok, null si ko + \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mssql, ...) car elles sont deprecated + On force creation de la base avec le charset forcecharset + */ + function DDLCreateDb($database) + { + // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci + $sql = 'CREATE DATABASE '.$database; + $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate; + $ret=$this->query($sql); + if (! $ret) + { + // On r�essaie pour compatibilit� avec mssql < 5.0 + $sql = 'CREATE DATABASE '.$database; + $ret=$this->query($sql); + } - return $ret; - } - - /** - \brief Liste des tables dans une database. - \param database Nom de la database - \return resource - */ - function DDLListTables($database) - { - $this->results = mssql_list_tables($database, $this->db); - return $this->results; - } + return $ret; + } - /** - \brief Cr�e une table - \param table Nom de la table - \param fields Tableau associatif [nom champ][tableau des descriptions] - \param primary_key Nom du champ qui sera la clef primaire - \param unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur - \param fulltext Tableau des Nom de champs qui seront index�s en fulltext - \param key Tableau des champs cl�s noms => valeur - \param type Type de la table - \return int <0 si KO, >=0 si OK - */ + /** + \brief Liste des tables dans une database. + \param database Nom de la database + \return resource + */ + function DDLListTables($database) + { + $this->results = mssql_list_tables($database, $this->db); + return $this->results; + } + + /** + \brief Cr�e une table + \param table Nom de la table + \param fields Tableau associatif [nom champ][tableau des descriptions] + \param primary_key Nom du champ qui sera la clef primaire + \param unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur + \param fulltext Tableau des Nom de champs qui seront index�s en fulltext + \param key Tableau des champs cl�s noms => valeur + \param type Type de la table + \return int <0 si KO, >=0 si OK + */ function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="") { // cl�s recherch�es dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra diff --git a/htdocs/lib/databases/mysql.lib.php b/htdocs/lib/databases/mysql.lib.php index c07b1fc3e8907ad24784ca27119278f38c9ba594..30123e9b80f080c63aeea46472cc4481e8b26340 100644 --- a/htdocs/lib/databases/mysql.lib.php +++ b/htdocs/lib/databases/mysql.lib.php @@ -207,15 +207,15 @@ class DoliDb } - /** - \brief Selectionne une database. - \param database Nom de la database - \return boolean true si ok, false si ko - */ - function select_db($database) - { - return mysql_select_db($database, $this->db); - } + /** + \brief Selectionne une database. + \param database Nom de la database + \return boolean true si ok, false si ko + */ + function select_db($database) + { + return mysql_select_db($database, $this->db); + } /** \brief Connection vers le serveur @@ -248,15 +248,15 @@ class DoliDb return $this->db; } - /** - \brief Renvoie la version du serveur - \return string Chaine version - */ - function getVersion() - { - return mysql_get_server_info($this->db); - } - + /** + \brief Renvoie la version du serveur + \return string Chaine version + */ + function getVersion() + { + return mysql_get_server_info($this->db); + } + /** \brief Renvoie la version du serveur sous forme de nombre \return string Chaine version @@ -521,7 +521,18 @@ class DoliDb } - /** + /** + \brief Escape a string to insert data. + \param stringtoencode String to escape + \return string String escaped + */ + function escape($stringtoencode) + { + return addslashes($stringtoencode); + } + + + /** \brief Formatage (par la base de donn�es) d'un champ de la base au format TMS ou Date (YYYY-MM-DD HH:MM:SS) afin de retourner une donn�e toujours au format universel date TMS unix. Fonction � utiliser pour g�n�rer les SELECT. @@ -640,63 +651,44 @@ class DoliDb - // Next function are not required. Only minor features use them. - //-------------------------------------------------------------- + // Next function are not required. Only minor features use them. + //-------------------------------------------------------------- - /** - \brief Renvoie l'id de la connexion - \return string Id connexion - */ - function getConnectId() - { - $resql=$this->query('SELECT CONNECTION_ID()'); - $row=$this->fetch_row($resql); - return $row[0]; - } + /** + \brief Renvoie l'id de la connexion + \return string Id connexion + */ + function DDLGetConnectId() + { + $resql=$this->query('SELECT CONNECTION_ID()'); + $row=$this->fetch_row($resql); + return $row[0]; + } - /** - \brief Renvoie la commande sql qui donne les droits � user sur toutes les tables - \param databaseuser User � autoriser - \return string Requete sql - */ - function getGrantForUserQuery($databaseuser) - { - return ''; - } - - - /** - \brief Retourne le dsn pear - \return dsn - */ - function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name) - { - return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name; - } - - /** - \brief Cr�ation d'une nouvelle base de donn�e - \param database nom de la database � cr�er - \return resource resource d�finie si ok, null si ko - \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated - On force creation de la base avec le charset forcecharset - */ - function DDLCreateDb($database) - { - // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci - $sql = 'CREATE DATABASE '.$database; - $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate; - $ret=$this->query($sql); - if (! $ret) - { - // On r�essaie pour compatibilit� avec Mysql < 4.1.1 + + /** + \brief Cr�ation d'une nouvelle base de donn�e + \param database nom de la database � cr�er + \return resource resource d�finie si ok, null si ko + \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated + On force creation de la base avec le charset forcecharset + */ + function DDLCreateDb($database) + { + // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci $sql = 'CREATE DATABASE '.$database; + $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate; $ret=$this->query($sql); + if (! $ret) + { + // On r�essaie pour compatibilit� avec Mysql < 4.1.1 + $sql = 'CREATE DATABASE '.$database; + $ret=$this->query($sql); } - return $ret; - } + return $ret; + } /** \brief Liste des tables dans une database. diff --git a/htdocs/lib/databases/mysqli.lib.php b/htdocs/lib/databases/mysqli.lib.php index af9300eba0aa1f84f7939631c17d59fbd3f58314..d36c3ff93ebacf17033853e6dbf272b9df111948 100644 --- a/htdocs/lib/databases/mysqli.lib.php +++ b/htdocs/lib/databases/mysqli.lib.php @@ -536,6 +536,17 @@ class DoliDb } + /** + \brief Escape a string to insert data. + \param stringtoencode String to escape + \return string String escaped + */ + function escape($stringtoencode) + { + return addslashes($stringtoencode); + } + + /** \brief Formatage (par la base de donn�es) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS) afin de retourner une donn�e toujours au format universel date tms unix. @@ -664,31 +675,13 @@ class DoliDb \brief Renvoie l'id de la connexion \return string Id connexion */ - function getConnectId() + function DDLGetConnectId() { $resql=$this->query('SELECT CONNECTION_ID()'); $row=$this->fetch_row($resql); return $row[0]; } - /** - \brief Renvoie la commande sql qui donne les droits sur les tables - \return string Requete sql - */ - function getGrantForUserQuery($databaseuser) - { - return ''; - } - - - /** - \brief Retourne le dsn pear - \return dsn - */ - function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name) - { - return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name; - } /** \brief Cr�ation d'une nouvelle base de donn�e @@ -696,20 +689,20 @@ class DoliDb \return resource resource d�finie si ok, null si ko \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated */ - function DDLCreateDb($database) - { - // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci - $sql = 'CREATE DATABASE '.$database; - $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate; - $ret=$this->query($sql); - if (! $ret) - { - // On r�essaie pour compatibilit� avec Mysql < 4.1.1 - $sql = 'CREATE DATABASE '.$database; - $ret=$this->query($sql); - } - return $ret; - } + function DDLCreateDb($database) + { + // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci + $sql = 'CREATE DATABASE '.$database; + $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate; + $ret=$this->query($sql); + if (! $ret) + { + // On r�essaie pour compatibilit� avec Mysql < 4.1.1 + $sql = 'CREATE DATABASE '.$database; + $ret=$this->query($sql); + } + return $ret; + } /** \brief Liste des tables dans une database. diff --git a/htdocs/lib/databases/pgsql.lib.php b/htdocs/lib/databases/pgsql.lib.php index 972aee0d2fc64a35ea412bd82e7afee1dacb4fea..cecbc1d084502763898f6616021529d6a7b0725c 100644 --- a/htdocs/lib/databases/pgsql.lib.php +++ b/htdocs/lib/databases/pgsql.lib.php @@ -459,6 +459,17 @@ class DoliDb } + /** + \brief Escape a string to insert data. + \param stringtoencode String to escape + \return string String escaped + */ + function escape($stringtoencode) + { + return addslashes($stringtoencode); + } + + /** \brief Formatage (par la base de donn�es) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS) afin de retourner une donn�e toujours au format universel date tms unix. @@ -591,54 +602,12 @@ class DoliDb \brief Renvoie l'id de la connexion \return string Id connexion */ - function getConnectId() + function DDLGetConnectId() { return '?'; } - /** - \brief Renvoie la commande sql qui donne les droits � user sur toutes les tables - \param databaseuser User � autoriser - \return string Requete sql - */ - function getGrantForUserQuery($databaseuser) - { - // Scan tables pour g�n�rer le grant - /*$dir = DOL_DOCUMENT_ROOT."/pgsql/tables"; - - $handle=opendir($dir); - $table_list=""; - while (($file = readdir($handle))!==false) - { - if (! ereg("\.key\.sql",$file) && ereg("^(.*)\.sql",$file,$reg)) - { - if ($table_list) { - $table_list.=", ".$reg[0]; - } - else { - $table_list.=$reg[0]; - } - } - } - - // Genere le grant_query - $grant_query = 'GRANT ALL ON '.$table_list.' TO "'.$databaseuser.'";'; - return $grant_query; - */ - return ''; - } - - /** - \brief Retourne le dsn pear - \return dsn - */ - function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name) - { - return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name; - } - - /** \brief Cr�ation d'une nouvelle base de donn�e \param database nom de la database � cr�er