summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSean Comeau <sean@ftlnetworks.ca>2013-01-14 11:57:40 -0800
committerSean Comeau <sean@ftlnetworks.ca>2013-01-14 11:57:40 -0800
commit42cd99626e260b807e859ccd124340927cbfaa47 (patch)
tree39a391e5f846dd6f626901c19c5c9094b5397b25 /lib
parentba9c967435ce62bb418c5c67eeb22184b009b24f (diff)
downloadnextcloud-server-42cd99626e260b807e859ccd124340927cbfaa47.tar.gz
nextcloud-server-42cd99626e260b807e859ccd124340927cbfaa47.zip
Use a custom exception instead of adding a delimiter to the error message
Diffstat (limited to 'lib')
-rw-r--r--lib/setup.php39
1 files changed, 31 insertions, 8 deletions
diff --git a/lib/setup.php b/lib/setup.php
index 9fa6aaf10b8..9da17a53747 100644
--- a/lib/setup.php
+++ b/lib/setup.php
@@ -1,5 +1,23 @@
<?php
+class HintException extends Exception
+{
+ private $hint;
+
+ public function __construct($message, $hint, $code = 0, Exception $previous = null) {
+ $this->hint = $hint;
+ parent::__construct($message, $code, $previous);
+ }
+
+ public function __toString() {
+ return __CLASS__ . ": [{$this->code}]: {$this->message} ({$this->hint})\n";
+ }
+
+ public function getHint() {
+ return $this->hint;
+ }
+}
+
class OC_Setup {
public static function install($options) {
$error = array();
@@ -19,9 +37,9 @@ class OC_Setup {
if($dbtype=='mysql')
$dbprettyname = 'MySQL';
else if($dbtype=='pgsql')
- $dbprettyname = 'PostgreSQL';
+ $dbprettyname = 'PostgreSQL';
else
- $dbprettyname = 'Oracle';
+ $dbprettyname = 'Oracle';
if(empty($options['dbuser'])) {
@@ -69,11 +87,16 @@ class OC_Setup {
try {
self::setupMySQLDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix, $username);
+ } catch (HintException $e) {
+ $error[] = array(
+ 'error' => $e->getMessage(),
+ 'hint' => $e->getHint()
+ );
+ return($error);
} catch (Exception $e) {
- $msgs = explode('|', $e->getMessage());
$error[] = array(
- 'error' => $msgs[0],
- 'hint' => $msgs[1]
+ 'error' => $e->getMessage(),
+ 'hint' => ''
);
return($error);
}
@@ -167,7 +190,7 @@ class OC_Setup {
//check if the database user has admin right
$connection = @mysql_connect($dbhost, $dbuser, $dbpass);
if(!$connection) {
- throw new Exception('MySQL username and/or password not valid|You need to enter either an existing account or the administrator.');
+ throw new HintException('MySQL username and/or password not valid','You need to enter either an existing account or the administrator.');
}
$oldUser=OC_Config::getValue('dbuser', false);
@@ -231,12 +254,12 @@ class OC_Setup {
$query = "CREATE USER '$name'@'localhost' IDENTIFIED BY '$password'";
$result = mysql_query($query, $connection);
if (!$result) {
- throw new Exception("MySQL user '" . "$name" . "'@'localhost' already exists|Delete this user from MySQL.");
+ throw new HintException("MySQL user '" . "$name" . "'@'localhost' already exists","Delete this user from MySQL.");
}
$query = "CREATE USER '$name'@'%' IDENTIFIED BY '$password'";
$result = mysql_query($query, $connection);
if (!$result) {
- throw new Exception("MySQL user '" . "$name" . "'@'%' already exists|Delete this user from MySQL.");
+ throw new HintException("MySQL user '" . "$name" . "'@'%' already exists","Delete this user from MySQL.");
}
}