Modification fonction grant

This commit is contained in:
Steven Mondji-Lerider 2012-08-21 18:22:53 +00:00
parent 05eac0153f
commit 6748cf3c6d
1 changed files with 18 additions and 15 deletions

View File

@ -245,6 +245,7 @@ class m_mysql {
// Ok, database does not exist, quota is ok and dbname is compliant. Let's proceed // Ok, database does not exist, quota is ok and dbname is compliant. Let's proceed
$db->query("INSERT INTO db (uid,login,pass,db,bck_mode) VALUES ('$cuid','$myadm','$password','$dbname',0);"); $db->query("INSERT INTO db (uid,login,pass,db,bck_mode) VALUES ('$cuid','$myadm','$password','$dbname',0);");
$dbname=str_replace('_','\_',$dbname); $dbname=str_replace('_','\_',$dbname);
echo $admin;echo $dbname;die();
$this->grant($dbname,$myadm,"ALL PRIVILEGES",$password); $this->grant($dbname,$myadm,"ALL PRIVILEGES",$password);
$this->dbus->query("FLUSH PRIVILEGES;"); $this->dbus->query("FLUSH PRIVILEGES;");
return true; return true;
@ -374,9 +375,9 @@ class m_mysql {
**/ **/
function grant($base,$user,$rights=null,$pass=null,$table='*'){ function grant($base,$user,$rights=null,$pass=null,$table='*'){
global $err,$db; global $err,$db;
$err->log("mysql","grant"); $err->log("mysql","grant",$base);
if(!preg_match("#^[0-9a-z_\\\\]*$#",$base)){ if(!preg_match("#^[0-9a-z_\\*\\\\]*$#",$base)){
$err->raise("mysql",2); $err->raise("mysql",2);
return false; return false;
}elseif(!$db->query("select db from db where db='$base';")){ }elseif(!$db->query("select db from db where db='$base';")){
@ -395,12 +396,18 @@ class m_mysql {
$err->raise("mysql",5); $err->raise("mysql",5);
return false; return false;
} }
if(!$db->query("select name from dbusers where name='".$user."' ;")){
$db->query("select name from dbusers where name='".$user."' ;");
if(!$db->num_rows()){
$err->raise("mysql",6); $err->raise("mysql",6);
return false; return false;
} }
if($rights == "FILE"){
$grant="grant ".$rights." on ".$base.".".$table." to '".$user."'@'".$this->dbus->Host."'" ;
}else{
$grant="grant ".$rights." on `".$base."`.".$table." to '".$user."'@'".$this->dbus->Host."'" ; $grant="grant ".$rights." on `".$base."`.".$table." to '".$user."'@'".$this->dbus->Host."'" ;
}
if($pass){ if($pass){
$grant .= " identified by '".$pass."';"; $grant .= " identified by '".$pass."';";
@ -408,7 +415,7 @@ class m_mysql {
$grant .= ";"; $grant .= ";";
} }
if(!$this->dbus->query($grant)){ if(!$this->dbus->query($grant)){
$err->raise("mysql",6); $err->raise("mysql",7);
return false; return false;
} }
return true; return true;
@ -750,14 +757,10 @@ class m_mysql {
$myadm=$db->f("name"); $myadm=$db->f("name");
$password=$db->f("password"); $password=$db->f("password");
}else{ }else{
if (strlen($mem->user["login"]) > 9) { //MYSQL doesn't allow login larger dans 16 characters $myadm=$cuid."_myadm";
$myadm=substr($mem->user["login"],0,9);
$myadm=$myadm."_myadm";
}else{
$myadm=$mem->user["login"]."_myadm";
} }
$chars = "234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; $chars = "1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$i = 0; $i = 0;
$password = ""; $password = "";
while ($i <= 8) { while ($i <= 8) {
@ -765,7 +768,7 @@ class m_mysql {
$i++; $i++;
} }
$db->query("INSERT INTO dbusers (uid,name,password,enable) VALUES ('$cuid','$myadm','$password','ADMIN');"); $db->query("INSERT INTO dbusers (uid,name,password,enable) VALUES ('$cuid','$myadm','$password','ADMIN');");
}
return true; return true;
} }