rt 4.0.23
[freeside.git] / rt / share / html / Install / DatabaseDetails.html
index 30a495d..b79793e 100644 (file)
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 %#                                          <sales@bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -143,7 +143,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 +165,7 @@ if ( $Run ) {
                     );
 
                     my $sth = $dbh->prepare('select * from Users');
+                    $sth->execute();
                 };
 
                 unless ( $@ ) {