Added cURL dependency check to Google Drive and WebDAV backend
Added check for backend's checkDependencies method to OC_Mount_Config::getBackends() when backend is configured to have some instead of blindly calling it and crashing Conflicts: apps/files_external/lib/config.php apps/files_external/lib/google.php
This commit is contained in:
parent
f7da4280ca
commit
8ca897df76
4 changed files with 33 additions and 4 deletions
|
@ -69,7 +69,8 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\Google', array(
|
|||
'configured' => '#configured',
|
||||
'token' => '#token',
|
||||
'token_secret' => '#token secret'),
|
||||
'custom' => 'google'));
|
||||
'custom' => 'google',
|
||||
'has_dependencies' => true));
|
||||
|
||||
OC_Mount_Config::registerBackend('\OC\Files\Storage\SWIFT', array(
|
||||
'backend' => 'OpenStack Swift',
|
||||
|
@ -97,7 +98,8 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\DAV', array(
|
|||
'user' => 'Username',
|
||||
'password' => '*Password',
|
||||
'root' => '&Root',
|
||||
'secure' => '!Secure https://')));
|
||||
'secure' => '!Secure https://'),
|
||||
'has_dependencies' => true));
|
||||
|
||||
OC_Mount_Config::registerBackend('\OC\Files\Storage\SFTP', array(
|
||||
'backend' => 'SFTP',
|
||||
|
|
|
@ -66,7 +66,10 @@ class OC_Mount_Config {
|
|||
|
||||
foreach (OC_Mount_Config::$backends as $class => $backend) {
|
||||
if (isset($backend['has_dependencies']) and $backend['has_dependencies'] === true) {
|
||||
if ($class::checkDependencies() !== true) {
|
||||
if (!method_exists($class, 'checkDependencies')) {
|
||||
\OCP\Util::writeLog('files_external', "Backend class $class has dependencies but doesn't provide method checkDependencies()", \OCP\Util::DEBUG);
|
||||
continue;
|
||||
} elseif ($class::checkDependencies() !== true) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -75,7 +78,7 @@ class OC_Mount_Config {
|
|||
|
||||
uasort($backends, $sortFunc);
|
||||
|
||||
return($backends);
|
||||
return $backends;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -41,6 +41,18 @@ class Google extends \OC\Files\Storage\Common {
|
|||
const DRAWING = 'application/vnd.google-apps.drawing';
|
||||
const PRESENTATION = 'application/vnd.google-apps.presentation';
|
||||
|
||||
/**
|
||||
* check if curl is installed
|
||||
*/
|
||||
public static function checkDependencies() {
|
||||
if (function_exists('curl_init')) {
|
||||
return true;
|
||||
} else {
|
||||
$l = new \OC_L10N('files_external');
|
||||
return $l->t('<b>Warning:</b> The cURL support in PHP is not enabled or installed. Mounting of Google Drive is not possible. Please ask your system administrator to install it.');
|
||||
}
|
||||
}
|
||||
|
||||
public function __construct($params) {
|
||||
if (isset($params['configured']) && $params['configured'] === 'true'
|
||||
&& isset($params['client_id']) && isset($params['client_secret'])
|
||||
|
|
|
@ -23,6 +23,18 @@ class DAV extends \OC\Files\Storage\Common {
|
|||
|
||||
private static $tempFiles = array();
|
||||
|
||||
/**
|
||||
* check if curl is installed
|
||||
*/
|
||||
public static function checkDependencies() {
|
||||
if (function_exists('curl_init')) {
|
||||
return true;
|
||||
} else {
|
||||
$l = new \OC_L10N('files_external');
|
||||
return $l->t('<b>Warning:</b> The cURL support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV is not possible. Please ask your system administrator to install it.');
|
||||
}
|
||||
}
|
||||
|
||||
public function __construct($params) {
|
||||
if (isset($params['host']) && isset($params['user']) && isset($params['password'])) {
|
||||
$host = $params['host'];
|
||||
|
|
Loading…
Reference in a new issue