Merge pull request #1481 from owncloud/fixing-1354-master
basic WebDAV test in place now
This commit is contained in:
commit
279cbeb001
7 changed files with 77 additions and 1 deletions
|
@ -6,6 +6,10 @@
|
||||||
* See the COPYING-README file.
|
* See the COPYING-README file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Post installation check
|
||||||
|
$this->create('post_setup_check', '/post-setup-check')
|
||||||
|
->action('OC_Setup', 'postSetupCheck');
|
||||||
|
|
||||||
// Core ajax actions
|
// Core ajax actions
|
||||||
// Search
|
// Search
|
||||||
$this->create('search_ajax_search', '/search/ajax/search.php')
|
$this->create('search_ajax_search', '/search/ajax/search.php')
|
||||||
|
|
|
@ -43,7 +43,7 @@ if(isset($_POST['install']) AND $_POST['install']=='true') {
|
||||||
OC_Template::printGuestPage("", "installation", $options);
|
OC_Template::printGuestPage("", "installation", $options);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
header("Location: ".OC::$WEBROOT.'/');
|
header( 'Location: '.OC_Helper::linkToRoute( 'post_setup_check' ));
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -548,6 +548,7 @@ class OC {
|
||||||
require_once 'core/setup.php';
|
require_once 'core/setup.php';
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
$request = OC_Request::getPathInfo();
|
$request = OC_Request::getPathInfo();
|
||||||
if(substr($request, -3) !== '.js'){// we need these files during the upgrade
|
if(substr($request, -3) !== '.js'){// we need these files during the upgrade
|
||||||
self::checkMaintenanceMode();
|
self::checkMaintenanceMode();
|
||||||
|
|
|
@ -610,4 +610,24 @@ class OC_Setup {
|
||||||
file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/.htaccess', $content);
|
file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/.htaccess', $content);
|
||||||
file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/index.html', '');
|
file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/index.html', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Post installation checks
|
||||||
|
*/
|
||||||
|
public static function postSetupCheck($params) {
|
||||||
|
// setup was successful -> webdav testing now
|
||||||
|
if (OC_Util::isWebDAVWorking()) {
|
||||||
|
header("Location: ".OC::$WEBROOT.'/');
|
||||||
|
} else {
|
||||||
|
$l=OC_L10N::get('lib');
|
||||||
|
|
||||||
|
$error = $l->t('Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken.');
|
||||||
|
$hint = $l->t('Please double check the <a href=\'%s\'>installation guides</a>.', 'http://doc.owncloud.org/server/5.0/admin_manual/installation.html');
|
||||||
|
|
||||||
|
$tmpl = new OC_Template('', 'error', 'guest');
|
||||||
|
$tmpl->assign('errors', array(1 => array('error' => $error, 'hint' => $hint)), false);
|
||||||
|
$tmpl->printPage();
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
34
lib/util.php
34
lib/util.php
|
@ -516,6 +516,40 @@ class OC_Util {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* we test if webDAV is working properly
|
||||||
|
*
|
||||||
|
* The basic assumption is that if the server returns 401/Not Authenticated for an unauthenticated PROPFIND
|
||||||
|
* the web server it self is setup properly.
|
||||||
|
*
|
||||||
|
* Why not an authenticated PROFIND and other verbs?
|
||||||
|
* - We don't have the password available
|
||||||
|
* - We have no idea about other auth methods implemented (e.g. OAuth with Bearer header)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function isWebDAVWorking() {
|
||||||
|
if (!function_exists('curl_init')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$settings = array(
|
||||||
|
'baseUri' => OC_Helper::linkToRemote('webdav'),
|
||||||
|
);
|
||||||
|
|
||||||
|
$client = new \Sabre_DAV_Client($settings);
|
||||||
|
|
||||||
|
$return = true;
|
||||||
|
try {
|
||||||
|
// test PROPFIND
|
||||||
|
$client->propfind('', array('{DAV:}resourcetype'));
|
||||||
|
} catch(\Sabre_DAV_Exception_NotAuthenticated $e) {
|
||||||
|
$return = true;
|
||||||
|
} catch(\Exception $e) {
|
||||||
|
$return = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the setlocal call doesn't work. This can happen if the right local packages are not available on the server.
|
* Check if the setlocal call doesn't work. This can happen if the right local packages are not available on the server.
|
||||||
|
|
|
@ -31,6 +31,7 @@ $tmpl->assign('entriesremain', $entriesremain);
|
||||||
$tmpl->assign('htaccessworking', $htaccessworking);
|
$tmpl->assign('htaccessworking', $htaccessworking);
|
||||||
$tmpl->assign('internetconnectionworking', OC_Util::isinternetconnectionworking());
|
$tmpl->assign('internetconnectionworking', OC_Util::isinternetconnectionworking());
|
||||||
$tmpl->assign('islocaleworking', OC_Util::issetlocaleworking());
|
$tmpl->assign('islocaleworking', OC_Util::issetlocaleworking());
|
||||||
|
$tmpl->assign('isWebDavWorking', OC_Util::isWebDAVWorking());
|
||||||
$tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded());
|
$tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded());
|
||||||
$tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax'));
|
$tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax'));
|
||||||
$tmpl->assign('shareAPIEnabled', OC_Appconfig::getValue('core', 'shareapi_enabled', 'yes'));
|
$tmpl->assign('shareAPIEnabled', OC_Appconfig::getValue('core', 'shareapi_enabled', 'yes'));
|
||||||
|
|
|
@ -22,6 +22,21 @@ if (!$_['htaccessworking']) {
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// is WebDAV working ?
|
||||||
|
if (!$_['isWebDavWorking']) {
|
||||||
|
?>
|
||||||
|
<fieldset class="personalblock">
|
||||||
|
<legend><strong><?php echo $l->t('Setup Warning');?></strong></legend>
|
||||||
|
|
||||||
|
<span class="securitywarning">
|
||||||
|
<?php echo $l->t('Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken.'); ?>
|
||||||
|
<?php echo $l->t('Please double check the <a href=\'%s\'>installation guides</a>.', 'http://doc.owncloud.org/server/5.0/admin_manual/installation.html'); ?>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
// if module fileinfo available?
|
// if module fileinfo available?
|
||||||
if (!$_['has_fileinfo']) {
|
if (!$_['has_fileinfo']) {
|
||||||
?>
|
?>
|
||||||
|
@ -36,6 +51,7 @@ if (!$_['has_fileinfo']) {
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// is locale working ?
|
||||||
if (!$_['islocaleworking']) {
|
if (!$_['islocaleworking']) {
|
||||||
?>
|
?>
|
||||||
<fieldset class="personalblock">
|
<fieldset class="personalblock">
|
||||||
|
|
Loading…
Reference in a new issue