rt 4.2.13 ticket#13852
[freeside.git] / rt / share / html / Install / DatabaseDetails.html
index 904d6b8..04b5fad 100644 (file)
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 %#                                          <sales@bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -105,9 +105,6 @@ unless ( $db_type eq 'SQLite' ) {
     push @Types, 'DatabaseHost', 'DatabasePort', 'DatabaseAdmin',
         'DatabaseAdminPassword', 'DatabaseUser', 'DatabasePassword';
 }
-if ( $db_type eq 'Pg' ) {
-    push @Types, 'DatabaseRequireSSL';
-}
 
 
 if ( $Run ) {
@@ -129,7 +126,6 @@ if ( $Run ) {
 
     my ( $status, $msg ) = RT::Installer->SaveConfig;
     if ( $status ) {
-        delete $INC{'RT_SiteConfig.pm'};
         RT->LoadConfig;
         RT::Handle->FinalizeDatabaseType();
     # dba connect systemdsn
@@ -143,7 +139,17 @@ if ( $Run ) {
             $dbh = DBI->connect(
                 RT::Handle->DSN, $ARGS{DatabaseAdmin}, $ARGS{DatabaseAdminPassword}, { RaiseError => 0, PrintError => 0 },
             );
-    
+
+            if ( $dbh and $db_type eq "Oracle") {
+                # The database _existing_ is itself insufficient for Oracle -- we need to check for the RT user
+                my $sth = $dbh->prepare('SELECT username FROM dba_users WHERE username = ?');
+                $sth->execute( $ARGS{DatabaseUser} );
+                undef $dbh unless $sth->fetchrow_array;
+
+                push @errors, loc("Oracle users cannot have empty passwords")
+                    unless $ARGS{DatabasePassword};
+            }
+
             if ( $dbh ) {
                 # check if table Users exists
                 eval {
@@ -155,6 +161,7 @@ if ( $Run ) {
                     );
 
                     my $sth = $dbh->prepare('select * from Users');
+                    $sth->execute();
                 };
 
                 unless ( $@ ) {