]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-18167 more hooks for distros
authorskodak <skodak>
Sat, 7 Feb 2009 17:07:05 +0000 (17:07 +0000)
committerskodak <skodak>
Sat, 7 Feb 2009 17:07:05 +0000 (17:07 +0000)
install.php
lib/installlib.php

index a3a36bd88383243599489928501b4c3fe5f715ed..f0faa531a564b07ddce92c45ed4403ee6cefefd7 100644 (file)
@@ -93,8 +93,8 @@ if (!empty($_POST)) {
     $config->stage    = INSTALL_WELCOME;
 
     $config->dbtype   = empty($distro->dbtype) ? '' : $distro->dbtype; // let distro skip dbtype selection
-    $config->dbhost   = 'localhost';
-    $config->dbuser   = '';
+    $config->dbhost   = empty($distro->dbhost) ? 'localhost' : $distro->dbhost; // let distros set dbhost
+    $config->dbuser   = empty($distro->dbuser) ? '' : $distro->dbuser; // let distros set dbuser
     $config->dbpass   = '';
     $config->dbname   = 'moodle';
     $config->prefix   = 'mdl_';
@@ -195,7 +195,7 @@ if ($config->stage == INSTALL_SAVE) {
     if (!$database->driver_installed()) {
         $config->stage = INSTALL_DATABASETYPE;
     } else {
-        $hint_database = install_db_validate($database, $config->dbhost, $config->dbuser, $config->dbpass, $config->dbname, $config->prefix, array('dbpersit'=>0, 'dbsocket'=>$config->dbsocket));
+        $hint_database = install_db_validate($database, $config->dbhost, $config->dbuser, $config->dbpass, $config->dbname, $config->prefix, array('dbpersit'=>0, 'dbsocket'=>$config->dbsocket), $distro);
 
         if ($hint_database === '') {
             $configphp = '<?php  /// Moodle Configuration File ' . "\r\n\r\n";
@@ -323,16 +323,19 @@ if ($config->stage == INSTALL_DATABASE) {
     $strdbsocket = get_string('databasesocket', 'install');
 
     echo '<div class="userinput">';
+
+    $disabled = empty($distro->dbhost) ? '' : 'disabled="disabled';
     echo '<div class="formrow"><label for="id_dbhost" class="formlabel">'.$strdbhost.'</label>';
-    echo '<input id="id_dbhost" name="dbhost" type="text" value="'.s($config->dbhost).'" size="30" class="forminput" />';
+    echo '<input id="id_dbhost" name="dbhost" '.$disabled.' type="text" value="'.s($config->dbhost).'" size="30" class="forminput" />';
     echo '</div>';
 
     echo '<div class="formrow"><label for="id_dbname" class="formlabel">'.$strdbname.'</label>';
     echo '<input id="id_dbname" name="dbname" type="text" value="'.s($config->dbname).'" size="30" class="forminput" />';
     echo '</div>';
 
+    $disabled = empty($distro->dbuser) ? '' : 'disabled="disabled';
     echo '<div class="formrow"><label for="id_dbuser" class="formlabel">'.$strdbuser.'</label>';
-    echo '<input id="id_dbuser" name="dbuser" type="text" value="'.s($config->dbuser).'" size="30" class="forminput" />';
+    echo '<input id="id_dbuser" name="dbuser" '.$disabled.' type="text" value="'.s($config->dbuser).'" size="30" class="forminput" />';
     echo '</div>';
 
     echo '<div class="formrow"><label for="id_dbpass" class="formlabel">'.$strdbpass.'</label>';
index 4797cb7d85288861922c6467e1db9901e457057f..49a0cfc963387e1ee45071f895429d8536e6d5aa 100644 (file)
@@ -57,8 +57,22 @@ function install_helpbutton($url, $title='') {
     echo "</a>\n";
 }
 
-function install_db_validate($database, $dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions) {
+function install_db_validate($database, $dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions, $distro) {
     // this is in function because we want the /install.php to parse in PHP4
+
+    if ($database->get_dbfamily() === 'mysql' and !empty($distro->setdbrootpassword) and $dbpass !== '') {
+        // distro hack - set root password
+        try {
+            if ($database->connect($dbhost, $dbuser, '', $dbname, $prefix, $dboptions)) {
+                $sql = "UPDATE user SET password=password(?) WHERE user='root'";
+                $params = array($dbpass);
+                $database->execute($sql, $params);
+                return '';
+            }
+        } catch (Exception $ignored) {
+        }
+    }
+
     try {
         try {
             $database->connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);