From: Platonides Date: Thu, 10 Feb 2011 19:12:33 +0000 (+0000) Subject: Remove unused initial_setup(), last $wgDBts2schema user. Follow up to r81132 X-Git-Tag: 1.31.0-rc.0~32059 X-Git-Url: https://git.cyclocoop.org/%242?a=commitdiff_plain;h=36be4d521f7a07c4c329e44ec3af4712511dbf39;p=lhc%2Fweb%2Fwiklou.git Remove unused initial_setup(), last $wgDBts2schema user. Follow up to r81132 --- diff --git a/includes/db/DatabasePostgres.php b/includes/db/DatabasePostgres.php index 17304f8d14..233e39dd91 100644 --- a/includes/db/DatabasePostgres.php +++ b/includes/db/DatabasePostgres.php @@ -212,220 +212,6 @@ class DatabasePostgres extends DatabaseBase { return $s; } - - function initial_setup( $superuser, $password, $dbName ) { - // If this is the initial connection, setup the schema stuff and possibly create the user - global $wgDBname, $wgDBuser, $wgDBpassword, $wgDBmwschema, $wgDBts2schema; - - $safeuser = $this->addIdentifierQuotes( $wgDBuser ); - // Are we connecting as a superuser for the first time? - if ( $superuser ) { - // Are we really a superuser? Check out our rights - $SQL = "SELECT - CASE WHEN usesuper IS TRUE THEN - CASE WHEN usecreatedb IS TRUE THEN 3 ELSE 1 END - ELSE CASE WHEN usecreatedb IS TRUE THEN 2 ELSE 0 END - END AS rights - FROM pg_catalog.pg_user WHERE usename = " . $this->addQuotes( $superuser ); - $rows = $this->numRows( $res = $this->doQuery( $SQL ) ); - if ( !$rows ) { - print '
  • ERROR: Could not read permissions for user "' . htmlspecialchars( $superuser ) . "\"
  • \n"; - dieout( ); - } - $perms = pg_fetch_result( $res, 0, 0 ); - - $SQL = "SELECT 1 FROM pg_catalog.pg_user WHERE usename = " . $this->addQuotes( $wgDBuser ); - $rows = $this->numRows( $this->doQuery( $SQL ) ); - if ( $rows ) { - print '
  • User "' . htmlspecialchars( $wgDBuser ) . '" already exists, skipping account creation.
  • '; - } else { - if ( $perms != 1 && $perms != 3 ) { - print '
  • ERROR: the user "' . htmlspecialchars( $superuser ) . '" cannot create other users. '; - print 'Please use a different Postgres user.
  • '; - dieout( ); - } - print '
  • Creating user ' . htmlspecialchars( $wgDBuser ) . '...'; - $safepass = $this->addQuotes( $wgDBpassword ); - $SQL = "CREATE USER $safeuser NOCREATEDB PASSWORD $safepass"; - $this->doQuery( $SQL ); - print "OK
  • \n"; - } - // User now exists, check out the database - if ( $dbName != $wgDBname ) { - $SQL = "SELECT 1 FROM pg_catalog.pg_database WHERE datname = " . $this->addQuotes( $wgDBname ); - $rows = $this->numRows( $this->doQuery( $SQL ) ); - if ( $rows ) { - print '
  • Database "' . htmlspecialchars( $wgDBname ) . '" already exists, skipping database creation.
  • '; - } else { - if ( $perms < 1 ) { - print '
  • ERROR: the user "' . htmlspecialchars( $superuser ) . '" cannot create databases. '; - print 'Please use a different Postgres user.
  • '; - dieout( ); - } - print '
  • Creating database ' . htmlspecialchars( $wgDBname ) . '...'; - $safename = $this->addIdentifierQuotes( $wgDBname ); - $SQL = "CREATE DATABASE $safename OWNER $safeuser "; - $this->doQuery( $SQL ); - print "OK
  • \n"; - // Hopefully tsearch2 and plpgsql are in template1... - } - - // Reconnect to check out tsearch2 rights for this user - print '
  • Connecting to "' . htmlspecialchars( $wgDBname ) . '" as superuser "' . - htmlspecialchars( $superuser ) . '" to check rights...'; - - $connectVars = array(); - if ( $this->mServer != false && $this->mServer != '' ) { - $connectVars['host'] = $this->mServer; - } - if ( $this->mPort != false && $this->mPort != '' ) { - $connectVars['port'] = $this->mPort; - } - $connectVars['dbname'] = $wgDBname; - $connectVars['user'] = $superuser; - $connectVars['password'] = $password; - - @$this->mConn = pg_connect( $this->makeConnectionString( $connectVars ) ); - if ( !$this->mConn ) { - print "FAILED TO CONNECT!
  • "; - dieout( ); - } - print "OK\n"; - } - - // Setup the schema for this user if needed - $result = $this->schemaExists( $wgDBmwschema ); - $safeschema = $this->addIdentifierQuotes( $wgDBmwschema ); - if ( !$result ) { - print '
  • Creating schema ' . htmlspecialchars( $wgDBmwschema ) . ' ...'; - $result = $this->doQuery( "CREATE SCHEMA $safeschema AUTHORIZATION $safeuser" ); - if ( !$result ) { - print "FAILED.
  • \n"; - dieout( ); - } - print "OK\n"; - } else { - print "
  • Schema already exists, explicitly granting rights...\n"; - $safeschema2 = $this->addQuotes( $wgDBmwschema ); - $SQL = "SELECT 'GRANT ALL ON '||pg_catalog.quote_ident(relname)||' TO $safeuser;'\n". - "FROM pg_catalog.pg_class p, pg_catalog.pg_namespace n\n". - "WHERE relnamespace = n.oid AND n.nspname = $safeschema2\n". - "AND p.relkind IN ('r','S','v')\n"; - $SQL .= "UNION\n"; - $SQL .= "SELECT 'GRANT ALL ON FUNCTION '||pg_catalog.quote_ident(proname)||'('||\n". - "pg_catalog.oidvectortypes(p.proargtypes)||') TO $safeuser;'\n". - "FROM pg_catalog.pg_proc p, pg_catalog.pg_namespace n\n". - "WHERE p.pronamespace = n.oid AND n.nspname = $safeschema2"; - $res = $this->doQuery( $SQL ); - if ( !$res ) { - print "FAILED. Could not set rights for the user.
  • \n"; - dieout( ); - } - $this->doQuery( "SET search_path = $safeschema" ); - $rows = $this->numRows( $res ); - while ( $rows ) { - $rows--; - $this->doQuery( pg_fetch_result( $res, $rows, 0 ) ); - } - print "OK"; - } - - // Install plpgsql if needed - $this->setup_plpgsql(); - - return true; // Reconnect as regular user - - } // end superuser - - if ( !defined( 'POSTGRES_SEARCHPATH' ) ) { - // Install plpgsql if needed - $this->setup_plpgsql(); - - // Does the schema already exist? Who owns it? - $result = $this->schemaExists( $wgDBmwschema ); - if ( !$result ) { - print '
  • Creating schema ' . htmlspecialchars( $wgDBmwschema ) . ' ...'; - error_reporting( 0 ); - $safeschema = $this->addIdentifierQuotes( $wgDBmwschema ); - $result = $this->doQuery( "CREATE SCHEMA $safeschema" ); - error_reporting( E_ALL ); - if ( !$result ) { - print 'FAILED. The user "' . htmlspecialchars( $wgDBuser ) . - '" must be able to access the schema. '. - 'You can try making them the owner of the database, or try creating the schema with a '. - 'different user, and then grant access to the "' . - htmlspecialchars( $wgDBuser ) . "\" user.
  • \n"; - dieout( ); - } - print "OK\n"; - } elseif ( $result != $wgDBuser ) { - print '
  • Schema "' . htmlspecialchars( $wgDBmwschema ) . '" exists but is not owned by "' . - htmlspecialchars( $wgDBuser ) . "\". Not ideal.
  • \n"; - } else { - print '
  • Schema "' . htmlspecialchars( $wgDBmwschema ) . '" exists and is owned by "' . - htmlspecialchars( $wgDBuser ) . "\". Excellent.
  • \n"; - } - - // Always return GMT time to accomodate the existing integer-based timestamp assumption - print "
  • Setting the timezone to GMT for user \"" . htmlspecialchars( $wgDBuser ) . '" ...'; - $SQL = "ALTER USER $safeuser SET timezone = 'GMT'"; - $result = pg_query( $this->mConn, $SQL ); - if ( !$result ) { - print "FAILED.
  • \n"; - dieout( ); - } - print "OK\n"; - // Set for the rest of this session - $SQL = "SET timezone = 'GMT'"; - $result = pg_query( $this->mConn, $SQL ); - if ( !$result ) { - print "
  • Failed to set timezone
  • \n"; - dieout( ); - } - - print '
  • Setting the datestyle to ISO, YMD for user "' . htmlspecialchars( $wgDBuser ) . '" ...'; - $SQL = "ALTER USER $safeuser SET datestyle = 'ISO, YMD'"; - $result = pg_query( $this->mConn, $SQL ); - if ( !$result ) { - print "FAILED.
  • \n"; - dieout( ); - } - print "OK\n"; - // Set for the rest of this session - $SQL = "SET datestyle = 'ISO, YMD'"; - $result = pg_query( $this->mConn, $SQL ); - if ( !$result ) { - print "
  • Failed to set datestyle
  • \n"; - dieout( ); - } - - // Fix up the search paths if needed - print '
  • Setting the search path for user "' . htmlspecialchars( $wgDBuser ) . '" ...'; - $path = $this->addIdentifierQuotes( $wgDBmwschema ); - if ( $wgDBts2schema !== $wgDBmwschema ) { - $path .= ', '. $this->addIdentifierQuotes( $wgDBts2schema ); - } - if ( $wgDBmwschema !== 'public' && $wgDBts2schema !== 'public' ) { - $path .= ', public'; - } - $SQL = "ALTER USER $safeuser SET search_path = $path"; - $result = pg_query( $this->mConn, $SQL ); - if ( !$result ) { - print "FAILED.
  • \n"; - dieout( ); - } - print "OK\n"; - // Set for the rest of this session - $SQL = "SET search_path = $path"; - $result = pg_query( $this->mConn, $SQL ); - if ( !$result ) { - print "
  • Failed to set search_path
  • \n"; - dieout( ); - } - define( 'POSTGRES_SEARCHPATH', $path ); - } - } - /** * Closes a database connection, if it is open * Returns success, true if already closed