From 7a6c42e9bc6b2e57b8e3fafd385ad58b78011025 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Fri, 10 Jun 2011 22:33:16 +0000 Subject: [PATCH] Fix for r89821, r89839: we can skip certain tests if the web user is the same as the install user. --- includes/installer/PostgresInstaller.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/includes/installer/PostgresInstaller.php b/includes/installer/PostgresInstaller.php index a47c172d85..fec928efdd 100644 --- a/includes/installer/PostgresInstaller.php +++ b/includes/installer/PostgresInstaller.php @@ -276,13 +276,17 @@ class PostgresInstaller extends DatabaseInstaller { $same = $this->getVar( 'wgDBuser' ) === $this->getVar( '_InstallUser' ); - // Check if the web user exists - // Connect to the database with the install user - $status = $this->getPgConnection( 'create-db' ); - if ( !$status->isOK() ) { - return $status; + if ( $same ) { + $exists = true; + } else { + // Check if the web user exists + // Connect to the database with the install user + $status = $this->getPgConnection( 'create-db' ); + if ( !$status->isOK() ) { + return $status; + } + $exists = $status->value->roleExists( $this->getVar( 'wgDBuser' ) ); } - $exists = $status->value->roleExists( $this->getVar( 'wgDBuser' ) ); // Validate the create checkbox if ( $this->canCreateAccounts() && !$same && !$exists ) { @@ -317,7 +321,7 @@ class PostgresInstaller extends DatabaseInstaller { // The web user is conventionally the table owner in PostgreSQL // installations. Make sure the install user is able to create // objects on behalf of the web user. - if ( $this->canCreateObjectsForWebUser() ) { + if ( $same || $this->canCreateObjectsForWebUser() ) { return Status::newGood(); } else { return Status::newFatal( 'config-pg-not-in-role' ); -- 2.20.1