diff options
author | Bart Visscher <bartv@thisnet.nl> | 2013-07-21 11:20:30 -0700 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2013-07-21 11:20:30 -0700 |
commit | 639097db5945f0631f69441abfa9eaec610d4d8e (patch) | |
tree | 98d7c1df5dcc29f130ad90c87749be12e5da6aa0 | |
parent | 9bf12da7504a04a05edf02286d9777d2235e7274 (diff) | |
parent | 11f28d78805674ea06ef9227cf922140bff4a4ae (diff) | |
download | nextcloud-server-639097db5945f0631f69441abfa9eaec610d4d8e.tar.gz nextcloud-server-639097db5945f0631f69441abfa9eaec610d4d8e.zip |
Merge pull request #4092 from owncloud/base-better-errors
Generate better errors in base.php
-rw-r--r-- | lib/base.php | 29 | ||||
-rw-r--r-- | lib/template.php | 8 | ||||
-rw-r--r-- | lib/user.php | 2 | ||||
-rwxr-xr-x | lib/util.php | 2 |
4 files changed, 17 insertions, 24 deletions
diff --git a/lib/base.php b/lib/base.php index 53aa7b09fd5..1ff462819db 100644 --- a/lib/base.php +++ b/lib/base.php @@ -124,10 +124,9 @@ class OC { OC::$THIRDPARTYWEBROOT = rtrim(dirname(OC::$WEBROOT), '/'); OC::$THIRDPARTYROOT = rtrim(dirname(OC::$SERVERROOT), '/'); } else { - echo('3rdparty directory not found! Please put the ownCloud 3rdparty' + throw new Exception('3rdparty directory not found! Please put the ownCloud 3rdparty' .' folder in the ownCloud folder or the folder above.' .' You can also configure the location in the config.php file.'); - exit; } // search the apps folder $config_paths = OC_Config::getValue('apps_paths', array()); @@ -150,9 +149,8 @@ class OC { } if (empty(OC::$APPSROOTS)) { - echo('apps directory not found! Please put the ownCloud apps folder in the ownCloud folder' + throw new Exception('apps directory not found! Please put the ownCloud apps folder in the ownCloud folder' .' or the folder above. You can also configure the location in the config.php file.'); - exit; } $paths = array(); foreach (OC::$APPSROOTS as $path) { @@ -174,14 +172,11 @@ class OC { if (file_exists(OC::$SERVERROOT . "/config/config.php") and !is_writable(OC::$SERVERROOT . "/config/config.php")) { $defaults = new OC_Defaults(); - $tmpl = new OC_Template('', 'error', 'guest'); - $tmpl->assign('errors', array(1 => array( - 'error' => "Can't write into config directory 'config'", - 'hint' => 'This can usually be fixed by ' + OC_Template::printErrorPage( + "Can't write into config directory 'config'", + 'This can usually be fixed by ' .'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html#set-the-directory-permissions" target="_blank">giving the webserver write access to the config directory</a>.' - ))); - $tmpl->printPage(); - exit(); + ); } } @@ -223,10 +218,7 @@ class OC { header('Retry-After: 120'); // render error page - $tmpl = new OC_Template('', 'error', 'guest'); - $tmpl->assign('errors', array(1 => array('error' => 'ownCloud is in maintenance mode'))); - $tmpl->printPage(); - exit(); + OC_Template::printErrorPage('ownCloud is in maintenance mode'); } } @@ -305,11 +297,7 @@ class OC { $error = 'Session could not be initialized. Please contact your '; $error .= 'system administrator'; - $tmpl = new OC_Template('', 'error', 'guest'); - $tmpl->assign('errors', array(1 => array('error' => $error))); - $tmpl->printPage(); - - exit(); + OC_Template::printErrorPage($error); } $sessionLifeTime = self::getSessionLifeTime(); @@ -370,6 +358,7 @@ class OC { self::$loader->registerPrefix('Symfony\\Component\\Routing', 'symfony/routing'); self::$loader->registerPrefix('Sabre\\VObject', '3rdparty'); self::$loader->registerPrefix('Sabre_', '3rdparty'); + self::$loader->registerPrefix('Patchwork', '3rdparty'); spl_autoload_register(array(self::$loader, 'load')); // set some stuff diff --git a/lib/template.php b/lib/template.php index 08df168afc6..d48e3b36821 100644 --- a/lib/template.php +++ b/lib/template.php @@ -163,7 +163,7 @@ class OC_Template{ $this->renderas = $renderas; $this->application = $app; $this->vars = array(); - $this->vars['requesttoken'] = OC_Util::callRegister(); + $this->vars['requesttoken'] = OC::$session ? OC_Util::callRegister() : ''; $parts = explode('/', $app); // fix translation when app is something like core/lostpassword $this->l10n = OC_L10N::get($parts[0]); @@ -225,6 +225,9 @@ class OC_Template{ */ static public function getFormFactorExtension() { + if (!\OC::$session) { + return ''; + } // if the formfactor is not yet autodetected do the // autodetection now. For possible formfactors check the // detectFormfactor documentation @@ -529,6 +532,9 @@ class OC_Template{ $error_msg = '['.$exception->getCode().'] '.$error_msg; } $hint = $exception->getTraceAsString(); + if (!empty($hint)) { + $hint = '<pre>'.$hint.'</pre>'; + } while (method_exists($exception,'previous') && $exception = $exception->previous()) { $error_msg .= '<br/>Caused by: '; if ($exception->getCode()) { diff --git a/lib/user.php b/lib/user.php index 830f13bb8df..d93ab1a5f73 100644 --- a/lib/user.php +++ b/lib/user.php @@ -316,7 +316,7 @@ class OC_User { * @return string uid or false */ public static function getUser() { - $uid = OC::$session->get('user_id'); + $uid = OC::$session ? OC::$session->get('user_id') : null; if (!is_null($uid)) { return $uid; } else { diff --git a/lib/util.php b/lib/util.php index 981b05b2b46..2586ad28320 100755 --- a/lib/util.php +++ b/lib/util.php @@ -1,7 +1,5 @@ <?php -require_once 'Patchwork/PHP/Shim/Normalizer.php'; - /** * Class for utility functions * |