From 824cc0af1ef91394c98d405d672f63e425d375d5 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Sun, 21 Apr 2019 14:50:31 -0300 Subject: [PATCH 1/3] Bugfix: user is not allowed The created user don't has permission to connect to database. I changed the code to give permission Signed-off-by: Vitor Mattos --- lib/private/Setup/PostgreSQL.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php index 283ab5f925..23c5ec7392 100644 --- a/lib/private/Setup/PostgreSQL.php +++ b/lib/private/Setup/PostgreSQL.php @@ -154,6 +154,8 @@ class PostgreSQL extends AbstractDatabase { // create the user $query = $connection->prepare("CREATE USER " . addslashes($this->dbUser) . " CREATEDB PASSWORD '" . addslashes($this->dbPassword) . "'"); $query->execute(); + $query = $connection->prepare('GRANT CONNECT ON DATABASE ' . $this->dbName . ' TO '.addslashes($this->dbUser)); + $query->execute(); } catch (DatabaseException $e) { $this->logger->error('Error while trying to create database user'); $this->logger->logException($e); From 4d187ce1d7ebaa8bc26055e6e85796dc39386e8e Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Sun, 21 Apr 2019 16:54:40 -0300 Subject: [PATCH 2/3] Check if database exists and grand permission Signed-off-by: Vitor Mattos --- lib/private/Setup/PostgreSQL.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php index 23c5ec7392..9bd4e57f60 100644 --- a/lib/private/Setup/PostgreSQL.php +++ b/lib/private/Setup/PostgreSQL.php @@ -154,8 +154,10 @@ class PostgreSQL extends AbstractDatabase { // create the user $query = $connection->prepare("CREATE USER " . addslashes($this->dbUser) . " CREATEDB PASSWORD '" . addslashes($this->dbPassword) . "'"); $query->execute(); - $query = $connection->prepare('GRANT CONNECT ON DATABASE ' . $this->dbName . ' TO '.addslashes($this->dbUser)); - $query->execute(); + if ($this->databaseExists($connection)) { + $query = $connection->prepare('GRANT CONNECT ON DATABASE ' . $this->dbName . ' TO '.addslashes($this->dbUser)); + $query->execute(); + } } catch (DatabaseException $e) { $this->logger->error('Error while trying to create database user'); $this->logger->logException($e); From 35465ca90c9a7e90e0836fd9def62b0e7a6bf81c Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 22 Apr 2019 19:57:11 -0300 Subject: [PATCH 3/3] solve code review Signed-off-by: Vitor Mattos --- lib/private/Setup/PostgreSQL.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php index 9bd4e57f60..6d1b5ca292 100644 --- a/lib/private/Setup/PostgreSQL.php +++ b/lib/private/Setup/PostgreSQL.php @@ -155,7 +155,7 @@ class PostgreSQL extends AbstractDatabase { $query = $connection->prepare("CREATE USER " . addslashes($this->dbUser) . " CREATEDB PASSWORD '" . addslashes($this->dbPassword) . "'"); $query->execute(); if ($this->databaseExists($connection)) { - $query = $connection->prepare('GRANT CONNECT ON DATABASE ' . $this->dbName . ' TO '.addslashes($this->dbUser)); + $query = $connection->prepare('GRANT CONNECT ON DATABASE ' . addslashes($this->dbName) . ' TO '.addslashes($this->dbUser)); $query->execute(); } } catch (DatabaseException $e) {