From a2cc658f376aaf26a9cec63197722660129ba4d6 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Wed, 1 Apr 2015 17:12:28 +0200 Subject: [PATCH] throw exception if setup is incomplete --- apps/user_ldap/lib/connection.php | 4 ++- lib/private/hook.php | 3 +++ lib/private/servernotavailableexception.php | 27 +++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 lib/private/servernotavailableexception.php diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index bbc710f5192..d017fe8029c 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -24,6 +24,8 @@ namespace OCA\user_ldap\lib; //magic properties (incomplete) +use OC\ServerNotAvailableException; + /** * responsible for LDAP connections in context with the provided configuration * @@ -159,7 +161,7 @@ class Connection extends LDAPUtility { } if(is_null($this->ldapConnectionRes)) { \OCP\Util::writeLog('user_ldap', 'No LDAP Connection to server ' . $this->configuration->ldapHost, \OCP\Util::ERROR); - throw new \Exception('Connection to LDAP server could not be established'); + throw new ServerNotAvailableException('Connection to LDAP server could not be established'); } return $this->ldapConnectionRes; } diff --git a/lib/private/hook.php b/lib/private/hook.php index c9ca58f779e..7c7128646a9 100644 --- a/lib/private/hook.php +++ b/lib/private/hook.php @@ -80,6 +80,9 @@ class OC_Hook{ OC_Log::write('hook', 'error while running hook (' . $i["class"] . '::' . $i["name"] . '): '.$e->getMessage(), OC_Log::ERROR); + if($e instanceof \OC\ServerNotAvailableException && $signalclass === 'OC_Filesystem' && $signalname === 'setup') { + throw $e; + } } } diff --git a/lib/private/servernotavailableexception.php b/lib/private/servernotavailableexception.php new file mode 100644 index 00000000000..5a57917d23a --- /dev/null +++ b/lib/private/servernotavailableexception.php @@ -0,0 +1,27 @@ + + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +namespace OC; + + +class ServerNotAvailableException extends \Exception { + +} -- 2.39.5