From 0cd038b71f881a444155ff948d10e6ad0c4b5bf7 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 7 Jul 2015 12:41:35 +0000 Subject: [PATCH] fix not being able to create new password, after r53051: allow to specify multiple ;-separated hosts for database --- phpgwapi/inc/class.egw.inc.php | 2 ++ phpgwapi/inc/class.egw_db.inc.php | 21 ++++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/phpgwapi/inc/class.egw.inc.php b/phpgwapi/inc/class.egw.inc.php index 22f20f3b20..496341a6fb 100644 --- a/phpgwapi/inc/class.egw.inc.php +++ b/phpgwapi/inc/class.egw.inc.php @@ -600,11 +600,13 @@ class egw extends egw_minimal _egw_log_exception($ex); } } +/* not needed as rpm uses /etc/cron.d/egroupware // call the asyncservice check_run function if it is not explicitly set to cron-only if (!$GLOBALS['egw_info']['server']['asyncservice']) // is default { ExecMethod('phpgwapi.asyncservice.check_run','fallback'); } + */ $this->db->disconnect(); } } diff --git a/phpgwapi/inc/class.egw_db.inc.php b/phpgwapi/inc/class.egw_db.inc.php index 2c50a80312..421b3924e1 100644 --- a/phpgwapi/inc/class.egw_db.inc.php +++ b/phpgwapi/inc/class.egw_db.inc.php @@ -584,6 +584,8 @@ class egw_db } unset($this->Link_ID); $this->Link_ID = 0; + + if (!empty($this->setupType)) $this->type = $this->setupType; } /** @@ -1177,14 +1179,23 @@ class egw_db $currentPassword = $this->Password; $currentDatabase = $this->Database; + if ($adminname != '') + { + $this->User = $adminname; + $this->Password = $adminpasswd; + $this->Database = $this->Type == 'pgsql' ? 'template1' : 'mysql'; + } + $this->disconnect(); + $sqls = array(); switch ($this->Type) { case 'pgsql': - $meta_db = 'template1'; $sqls[] = "CREATE DATABASE $currentDatabase"; break; case 'mysql': + case 'mysqli': + case 'mysqlt': $create = "CREATE DATABASE `$currentDatabase`"; if ($charset && isset($this->Link_ID->charset2mysql[$charset]) && (float) $this->ServerInfo['version'] >= 4.1) { @@ -1192,19 +1203,11 @@ class egw_db } $sqls[] = $create; $sqls[] = "GRANT ALL ON `$currentDatabase`.* TO $currentUser@'$grant_host' IDENTIFIED BY ".$this->quote($currentPassword); - $meta_db = 'mysql'; break; default: echo "

db::create_database(user='$adminname',\$pw) not yet implemented for DB-type '$this->Type'

\n"; break; } - if ($adminname != '') - { - $this->User = $adminname; - $this->Password = $adminpasswd; - $this->Database = $meta_db; - } - $this->disconnect(); foreach($sqls as $sql) { $this->query($sql,__LINE__,__FILE__);