Changeset 1531
- Timestamp:
- 04/26/06 16:59:28 (3 years ago)
- Files:
-
- alternc/trunk/bureau/admin/menu_sql.php (modified) (1 diff)
- alternc/trunk/bureau/admin/sql_users_add.php (added)
- alternc/trunk/bureau/admin/sql_users_del.php (added)
- alternc/trunk/bureau/admin/sql_users_doadd.php (added)
- alternc/trunk/bureau/admin/sql_users_dorights.php (added)
- alternc/trunk/bureau/admin/sql_users_list.php (added)
- alternc/trunk/bureau/admin/sql_users_rights.php (added)
- alternc/trunk/bureau/class/m_mysql.php (modified) (6 diffs)
- alternc/trunk/bureau/locales/fr_FR/LC_MESSAGES/sql.po (modified) (6 diffs)
- alternc/trunk/bureau/locales/fr_FR/LC_MESSAGES/sql_manual.po (modified) (4 diffs)
- alternc/trunk/bureau/locales/sql.po (modified) (3 diffs)
- alternc/trunk/bureau/locales/sql_manual.po (modified) (2 diffs)
- alternc/trunk/install/mysql.sql (modified) (1 diff)
- alternc/trunk/install/upgrades/0.9.5.sql (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
alternc/trunk/bureau/admin/menu_sql.php
r101 r1531 33 33 <tr><td nowrap="nowrap"> 34 34 MySQL<br /> 35 - <a href="sql_users_list.php"><?php __("MySQL Users") ?></a><br /> 35 36 - <a href="sql_list.php"><?php __("Databases"); ?></a><br /> 36 37 - <a target="_blank" href="sql_admin.php"><?php __("SQL Admin"); ?></a><br /> alternc/trunk/bureau/class/m_mysql.php
r1530 r1531 53 53 */ 54 54 function alternc_quota_names() { 55 return "mysql";55 return array("mysql","mysql_users"); 56 56 } 57 57 … … 101 101 global $db,$err,$bro,$mem,$cuid; 102 102 $root="/var/alternc/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]; 103 $root=realpath($root);104 103 $err->log("mysql","get_mysql_details"); 105 104 $dbname=$mem->user["login"].($dbn?"_":"").$dbn; … … 256 255 $login=$db->f("login"); 257 256 258 if (strlen($password)>16 || strlen($password)<4) {257 if (strlen($password)>16) { 259 258 $err->raise("mysql",8); 260 259 return false; … … 274 273 global $db,$err,$mem,$cuid; 275 274 $err->log("mysql","new_mysql"); 276 if (strlen($password)>16 || strlen($password)<4) {275 if (strlen($password)>16) { 277 276 $err->raise("mysql",8); 278 277 return false; … … 363 362 return 0; 364 363 } 364 } elseif ($name=="mysql_users") { 365 $err->log("mysql","alternc_get_quota"); 366 $c=$this->get_userslist(); 367 if(is_array($c)) 368 return count($c); 369 else 370 return 0; 365 371 } else return false; 366 372 } … … 419 425 } 420 426 427 function get_userslist() { 428 global $db,$err,$bro,$cuid; 429 $err->log("mysql","get_userslist"); 430 $db->query("SELECT name FROM dbusers WHERE uid='$cuid';"); 431 if (!$db->num_rows()) { 432 $err->raise("mysql",19); 433 return false; 434 } 435 $c=array(); 436 while ($db->next_record()) { 437 $c[]=array("name"=>substr($db->f("name"),strpos($db->f("name"),"_")+1)); 438 } 439 440 return $c; 441 } 442 443 function add_user($usern,$password,$passconf) { 444 global $db,$err,$quota,$mem,$cuid; 445 $err->log("mysql","add_user",$usern); 446 447 $user=addslashes($mem->user["login"]."_$usern"); 448 $pass=addslashes($password); 449 450 if (!$quota->cancreate("mysql_users")) { 451 $err->raise("mysql",13); 452 return false; 453 } 454 if (!ereg("^[0-9a-z]",$usern)) { 455 $err->raise("mysql",14); 456 return false; 457 } 458 459 if (strlen($user) > 16 || strlen($usern) == 0 ) { 460 $err->raise("mysql",15); 461 return false; 462 } 463 $db->query("SELECT * FROM dbusers WHERE name='$user';"); 464 if ($db->num_rows()) { 465 $err->raise("mysql",16); 466 return false; 467 } 468 if ($password != $passconf || !$password) { 469 $err->raise("mysql",17); 470 return false; 471 } 472 473 474 // On créé l'utilisateur 475 $db->query("GRANT USAGE ON *.* TO '$user'@'$this->client' IDENTIFIED BY '$pass';"); 476 // On le rajoute dans la table des utilisateurs 477 $db->query("INSERT INTO dbusers (uid,name) VALUES($cuid,'$user');"); 478 return true; 479 } 480 481 function del_user($user) { 482 global $db,$err,$mem,$cuid,$L_MYSQL_DATABASE; 483 $err->log("mysql","del_user",$user); 484 if (!ereg("^[0-9a-z]",$user)) { 485 $err->raise("mysql",14); 486 return false; 487 } 488 $db->query("SELECT name FROM dbusers WHERE name='".$mem->user["login"]."_$user';"); 489 if (!$db->num_rows()) { 490 $err->raise("mysql",18); 491 return false; 492 } 493 $db->next_record(); 494 $login=$db->f("name"); 495 496 // Ok, database exists and dbname is compliant. Let's proceed 497 $db->query("USE mysql"); 498 $db->query("REVOKE ALL PRIVILEGES ON *.* FROM '".$mem->user["login"]."_$user'@'$this->client';"); 499 $db->query("DELETE FROM db WHERE User='".$mem->user["login"]."_$user' AND Host='$this->client';"); 500 $db->query("DELETE FROM user WHERE User='".$mem->user["login"]."_$user' AND Host='$this->client';"); 501 $db->query("FLUSH PRIVILEGES"); 502 $db->query("USE $L_MYSQL_DATABASE"); 503 $db->query("DELETE FROM dbusers WHERE uid='$cuid' AND name='".$mem->user["login"]."_$user';"); 504 return true; 505 } 506 507 function get_user_dblist($user) { 508 global $db,$err,$mem,$cuid,$L_MYSQL_DATABASE; 509 $err->log("mysql","get_user_dblist"); 510 511 $r=array(); 512 $dblist=$this->get_dblist(); 513 514 $db->query("USE mysql;"); 515 for ( $i=0 ; $i<count($dblist) ; $i++ ) { 516 $db->query("SELECT Db, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, References_priv, Index_priv, Alter_priv, Create_tmp_table_priv, Lock_tables_priv FROM db WHERE User='".$mem->user["login"].($user?"_":"").$user."' AND Host='$this->client' AND Db='".$dblist[$i]["db"]."';"); 517 if ($db->next_record()) 518 $r[]=array("db"=>$dblist[$i]["name"], "select"=>$db->f("Select_priv"), "insert"=>$db->f("Insert_priv"), "update"=>$db->f("Update_priv"), "delete"=>$db->f("Delete_priv"), "create"=>$db->f("Create_priv"), "drop"=>$db->f("Drop_priv"), "references"=>$db->f("References_priv"), "index"=>$db->f("Index_priv"), "alter"=>$db->f("Alter_priv"), "create_tmp"=>$db->f("Create_tmp_table_priv"), "lock"=>$db->f("Lock_tables_priv")); 519 else 520 $r[]=array("db"=>$dblist[$i]["name"], "select"=>"N", "insert"=>"N", "update"=>"N", "delete"=>"N", "create"=>"N", "drop"=>"N", "references"=>"N", "index"=>"N", "alter"=>"N", "Create_tmp"=>"N", "lock"=>"N" ); 521 } 522 $db->query("FLUSH PRIVILEGES"); 523 $db->query("USE $L_MYSQL_DATABASE"); 524 525 return $r; 526 } 527 528 function set_user_rights($user,$dbn,$rights) { 529 global $mem, $db; 530 531 $usern=addslashes($mem->user["login"].($user?"_":"").$user); 532 $dbname=addslashes($mem->user["login"].($dbn?"_":"").$dbn); 533 // On génère les droits en fonction du tableau de droits 534 for( $i=0 ; $i<count($rights) ; $i++ ) { 535 switch ($rights[$i]) { 536 case "select": 537 $strrights.="SELECT,"; 538 break; 539 case "insert": 540 $strrights.="INSERT,"; 541 break; 542 case "update": 543 $strrights.="UPDATE,"; 544 break; 545 case "delete": 546 $strrights.="DELETE,"; 547 break; 548 case "create": 549 $strrights.="CREATE,"; 550 break; 551 case "drop": 552 $strrights.="DROP,"; 553 break; 554 case "references": 555 $strrights.="REFERENCES,"; 556 break; 557 case "index": 558 $strrights.="INDEX,"; 559 break; 560 case "alter": 561 $strrights.="ALTER,"; 562 break; 563 case "create_tmp": 564 $strrights.="CREATE TEMPORARY TABLES,"; 565 break; 566 case "lock": 567 $strrights.="LOCK TABLES,"; 568 break; 569 } 570 } 571 572 573 // On remet à zéro tous les droits de l'utilisateur 574 $db->query("REVOKE ALL PRIVILEGES ON *.* FROM '$usern'@'$this->client';"); 575 if( $strrights ){ 576 $strrights=substr($strrights,0,strlen($strrights)-1); 577 $db->query("GRANT $strrights ON $dbname.* TO '$usern'@'$this->client';"); 578 } 579 return TRUE; 580 } 421 581 422 582 } /* Class m_mysql */ alternc/trunk/bureau/locales/fr_FR/LC_MESSAGES/sql.po
r458 r1531 7 7 "Project-Id-Version: $Id: sql.po,v 1.6 2004/11/10 22:14:22 anonymous Exp $\n" 8 8 "Report-Msgid-Bugs-To: i18n@alternc.org\n" 9 "POT-Creation-Date: 200 4-11-01 16:18+0100\n"9 "POT-Creation-Date: 2006-04-02 03:58+0000\n" 10 10 "PO-Revision-Date: 2002-06-16 13:50CEST\n" 11 11 "Last-Translator: Benjamin Sonntag <benjamin@alternc.org>\n" … … 16 16 "X-Generator: Emacs 21\n" 17 17 18 #: admin/menu_sql.php:34 19 msgid "MySQL Users" 20 msgstr "Utilisateurs MySQL" 21 18 22 #: admin/menu_sql.php:35 19 23 msgid "Databases" … … 31 35 msgid "err_mysql_1" 32 36 msgstr "Vous avez atteint votre quota de bases, vous ne pouvez plus en créer." 37 38 #: admin/sql_users_add.php:34 admin/sql_users_doadd.php:34 39 msgid "err_mysql_20" 40 msgstr "" 41 "Vous avez atteint votre quota d'utilisateurs, vous ne pouvez plus en créer." 33 42 34 43 #: admin/sql_add.php:41 admin/sql_list.php:82 … … 96 105 msgstr "Changer les paramètres de sauvegarde SQL" 97 106 98 #: admin/sql_bck.php:101 admin/sql_dorestore.php:55 admin/sql_restore.php:6 8107 #: admin/sql_bck.php:101 admin/sql_dorestore.php:55 admin/sql_restore.php:69 99 108 msgid "You currently have no database defined" 100 109 msgstr "Vous n'avez pas de base de données de définie" … … 202 211 msgstr "Changement de mot de passe SQL" 203 212 204 #: admin/sql_pass.php:3 6213 #: admin/sql_pass.php:38 205 214 msgid "Your password has been successfully changed." 206 215 msgstr "Votre mot de passe a été modifié avec succès" … … 211 220 msgstr "Restaurer la sauvegarde SQL de la base %s" 212 221 213 #: admin/sql_restore.php:5 3222 #: admin/sql_restore.php:54 214 223 msgid "Please enter the filename containing SQL data to be restored." 215 224 msgstr "" 216 225 "Entrez le nom du fichier contenant des données SQL à restaurer dans la base." 217 226 218 #: admin/sql_restore.php:5 7227 #: admin/sql_restore.php:58 219 228 msgid "Restore my database" 220 229 msgstr "Restaurer ma base de données" 221 230 222 #: admin/sql_restore.php:6 3231 #: admin/sql_restore.php:64 223 232 msgid "Note: If the filename ends with .gz, it will be uncompressed before." 224 233 msgstr "" 225 234 "Note : Si le nom du fichier se termine par .gz, il sera décompressé avant." 235 236 #: admin/sql_users_add.php:41 237 msgid "Create a new MySQL user" 238 msgstr "Créer un nouvel utilisateur MySQL" 239 240 #: admin/sql_users_add.php:66 241 msgid "Create this new user" 242 msgstr "Créer ce nouvel utilisateur" 243 244 #: admin/sql_users_del.php:41 245 msgid "The user %s has been successfully deleted" 246 msgstr "L'utilisateur %s a été effacée avec succès" 247 248 #: admin/sql_users_del.php:54 249 msgid "Confirm the deletion of the following MySQL users" 250 msgstr "Confirmez l'effacement des utilisateurs MySQL suivants" 251 252 #: admin/sql_users_dorights.php:44 253 msgid "The rights has been successfully applied to the user" 254 msgstr "La droits ont été appliqués avec succès à l'utilisateur" 255 256 #: admin/sql_users_list.php:48 257 msgid "help_sql_users_list_ok" 258 msgstr "" 259 "Utilisez le tableau ci-dessous pour gérer vos utilisateurs MySQL : " 260 261 #: admin/sql_users_rights.php:46 262 msgid "help_sql_users_rights_ok" 263 msgstr "" 264 "Cochez les droits sur les bases dont vous voulez fournir à l'utilisateur : " 265 266 #: admin/sql_users_list.php:53 267 msgid "Rights" 268 msgstr "Droits" 269 270 #: admin/sql_users_rights.php:38 271 msgid "MySQL Rights for %s" 272 msgstr "Droits MySQL pour %s" 273 274 #: admin/sql_users_rights.php:115 275 msgid "Apply" 276 msgstr "Appliquer" alternc/trunk/bureau/locales/fr_FR/LC_MESSAGES/sql_manual.po
r692 r1531 5 5 msgid "" 6 6 msgstr "" 7 "Project-Id-Version: $Id: sql_manual.po,v 1.2 2005/05/27 20:10:19 arnaud-lb Exp $\n" 7 "Project-Id-Version: $Id: sql_manual.po,v 1.2 2005/05/27 20:10:19 arnaud-lb " 8 "Exp $\n" 8 9 "Report-Msgid-Bugs-To: i18n@alternc.org\n" 9 10 "POT-Creation-Date: 2004-05-24 19:34+0200\n" … … 18 19 msgid "quota_mysql" 19 20 msgstr "Bases de données MySQL" 21 22 msgid "quota_mysql_users" 23 msgstr "Utilisateurs MySQL" 20 24 21 25 msgid "err_mysql_2" … … 47 51 msgid "err_mysql_10" 48 52 msgstr "" 49 "Erreur : vous ne pouvez créer votre base principale : il vous reste "50 " d'autresbases !"53 "Erreur : vous ne pouvez créer votre base principale : il vous reste d'autres " 54 "bases !" 51 55 52 56 msgid "err_mysql_11" 53 57 msgstr "" 54 "Vous n'avez aucune base de données, cliquez sur 'Bases de données' pour "55 " encréer une"58 "Vous n'avez aucune base de données, cliquez sur 'Bases de données' pour en " 59 "créer une" 56 60 57 61 msgid "err_mysql_12" 58 62 msgstr "Le nom de la base de données est trop long (64 caractères maximum)" 63 64 msgid "err_mysql_13" 65 msgstr "" 66 "Vous avez atteint votre quota d'utilisateurs SQL, vous ne pouvez plus en " 67 "créer" 68 69 msgid "err_mysql_14" 70 msgstr "Le nom d'utilisateur ne peut contenir que des chiffres et/ou lettres minuscules" 71 72 msgid "err_mysql_15" 73 msgstr "Nom d'utilisateur trop long (16 caractères maximum)" 74 75 msgid "err_mysql_16" 76 msgstr "Un utilisateur du même nom existe déjà" 77 78 msgid "err_mysql_17" 79 msgstr "Les mot de passes ne correspondent pas" 80 81 msgid "err_mysql_18" 82 msgstr "L'utilisateur n'existe pas" 83 84 #, fuzzy 85 msgid "err_mysql_19" 86 msgstr "Le fichier entré n'existe pas ou est incorect." 59 87 60 88 msgid "General SQL Admin" … … 72 100 msgid "hlp_sql_bck" 73 101 msgstr "" 74 "Les sauvegardes de votre base MySQL sont stockées dans le répertoire "75 " choisi sous le nom <code>db.sql.1</code> à <code>db.sql.19</code><br />"76 " où 'db' est remplacé par le nom de la base de données.<br />ATTENTION :"77 " si vous modifiez les paramètres de la sauvegarde (nombre de sauvegardes,"78 " compression ...) des vieilles sauvegardes peuvent rester dans le"79 " répertoire concerné. Vous pouvez les effacer dans le gestionnaire de"80 "fichier." 102 "Les sauvegardes de votre base MySQL sont stockées dans le répertoire choisi " 103 "sous le nom <code>db.sql.1</code> à <code>db.sql.19</code><br /> où 'db' est " 104 "remplacé par le nom de la base de données.<br />ATTENTION : si vous modifiez " 105 "les paramètres de la sauvegarde (nombre de sauvegardes, compression ...) des " 106 "vieilles sauvegardes peuvent rester dans le répertoire concerné. Vous pouvez " 107 "les effacer dans le gestionnaire de fichier." 108 alternc/trunk/bureau/locales/sql.po
r968 r1531 17 17 "Content-Transfer-Encoding: 8bit\n" 18 18 19 #: admin/menu_sql.php:34 20 msgid "MySQL Users" 21 msgstr "" 22 19 23 #: admin/menu_sql.php:35 20 24 msgid "Databases" … … 31 35 #: admin/sql_add.php:34 admin/sql_doadd.php:34 32 36 msgid "err_mysql_1" 37 msgstr "" 38 39 #: admin/sql_users_add.php:34 admin/sql_users_doadd.php:34 40 msgid "err_mysql_20" 33 41 msgstr "" 34 42 … … 214 222 msgid "Note: If the filename ends with .gz, it will be uncompressed before." 215 223 msgstr "" 224 225 #: admin/sql_users_add.php:41 226 msgid "Create a new MySQL user" 227 msgstr "" 228 229 #: admin/sql_users_add.php:66 230 msgid "Create this new user" 231 msgstr "" 232 233 #: admin/sql_users_del.php:41 234 msgid "The user %s has been successfully deleted" 235 msgstr "" 236 237 #: admin/sql_users_del.php:54 238 msgid "Confirm the deletion of the following MySQL users" 239 msgstr "" 240 241 #: admin/sql_users_dorights.php:44 242 msgid "The rights has been successfully applied to the user" 243 msgstr "" 244 245 #: admin/sql_users_list.php:48 246 msgid "help_sql_users_list_ok" 247 msgstr "" 248 249 #: admin/sql_users_rights.php:46 250 msgid "help_sql_users_rights_ok" 251 msgstr "" 252 253 #: admin/sql_users_list.php:53 254 msgid "Rights" 255 msgstr "" 256 257 #: admin/sql_users_rights.php:38 258 msgid "MySQL Rights for %s" 259 msgstr "" 260 261 #: admin/sql_users_rights.php:115 262 msgid "Apply" 263 msgstr "" alternc/trunk/bureau/locales/sql_manual.po
r692 r1531 18 18 msgid "quota_mysql" 19 19 msgstr "Bases de données MySQL" 20 21 msgid "quota_mysql_users" 22 msgstr "Utilisateurs MySQL" 20 23 21 24 msgid "err_mysql_2" … … 58 61 msgstr "Le nom de la base de données est trop long (64 caractères maximum)" 59 62 63 msgid "err_mysql_13" 64 msgstr "Vous n'avez aucun utilisateur SQL autre que l'utilisateur principal" 65 66 msgid "err_mysql_14" 67 msgstr "Le nom de l'utilisateur ne peut contenir que des chiffres ou lettres minuscules." 68 69 msgid "err_mysql_15" 70 msgstr "Le nom d'utilisateur est trop long (16 caractères maximum)" 71 72 msgid "err_mysql_16" 73 msgstr "L'utilisateur existe déjà" 74 75 msgid "err_mysql_17" 76 msgstr "Les mots de passes ne correspondent pas" 77 78 msgid "err_mysql_18" 79 msgstr "Aucun utilisateur de ce nom n'existe" 80 81 msgid "err_mysql_19" 82 msgstr "Vous n'avez aucun utilisateur SQL autre que l'utilisateur principal" 83 60 84 msgid "General SQL Admin" 61 85 msgstr "Admin SQL Général" alternc/trunk/install/mysql.sql
r983 r1531 417 417 418 418 If this is set to 0 or a "false" string, it will be ignored.'); 419 420 -- 421 -- Table structure for table `dbusers` 422 -- 423 424 CREATE TABLE `dbusers` ( 425 `id` int(10) unsigned NOT NULL auto_increment, 426 `uid` int(10) unsigned NOT NULL default '0', 427 `name` varchar(16) NOT NULL default '', 428 KEY `id` (`id`) 429 ) TYPE=MyISAM COMMENT='Utilisateurs MySQL des membres'; 430 alternc/trunk/install/upgrades/0.9.5.sql
r1528 r1531 41 41 ) TYPE=MyISAM COMMENT='Web space used by accounts.'; 42 42 43 -- ajout d'une table pour la gestion des utilisateurs mysql 44 CREATE TABLE `dbusers` ( 45 `id` int(10) unsigned NOT NULL auto_increment, 46 `uid` int(10) unsigned NOT NULL default '0', 47 `name` varchar(16) NOT NULL default '', 48 KEY `id` (`id`) 49 ) TYPE=MyISAM COMMENT='Utilisateurs MySQL des membres'; 50
