diff options
author | Sean Comeau <sean@ftlnetworks.ca> | 2013-01-14 11:57:40 -0800 |
---|---|---|
committer | Sean Comeau <sean@ftlnetworks.ca> | 2013-01-14 11:57:40 -0800 |
commit | 42cd99626e260b807e859ccd124340927cbfaa47 (patch) | |
tree | 39a391e5f846dd6f626901c19c5c9094b5397b25 /lib | |
parent | ba9c967435ce62bb418c5c67eeb22184b009b24f (diff) | |
download | nextcloud-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.php | 39 |
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."); } } |