summaryrefslogtreecommitdiffstats
path: root/apps/files_external
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_external')
-rw-r--r--apps/files_external/3rdparty/composer.json2
-rw-r--r--apps/files_external/3rdparty/composer.lock14
-rw-r--r--apps/files_external/3rdparty/composer/autoload_classmap.php15
-rw-r--r--apps/files_external/3rdparty/composer/installed.json50
-rw-r--r--apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php10
-rw-r--r--apps/files_external/js/settings.js4
-rw-r--r--apps/files_external/l10n/nl.js3
-rw-r--r--apps/files_external/l10n/nl.json3
-rw-r--r--apps/files_external/lib/Controller/GlobalStoragesController.php1
-rw-r--r--apps/files_external/lib/Controller/StoragesController.php2
-rw-r--r--apps/files_external/lib/Controller/UserGlobalStoragesController.php2
-rw-r--r--apps/files_external/lib/Controller/UserStoragesController.php1
-rw-r--r--apps/files_external/lib/Lib/Storage/Dropbox.php5
-rw-r--r--apps/files_external/lib/Lib/Storage/Google.php4
-rw-r--r--apps/files_external/templates/settings.php6
-rwxr-xr-xapps/files_external/tests/env/start-swift-ceph.sh3
16 files changed, 68 insertions, 57 deletions
diff --git a/apps/files_external/3rdparty/composer.json b/apps/files_external/3rdparty/composer.json
index 72335c8d891..158478741ec 100644
--- a/apps/files_external/3rdparty/composer.json
+++ b/apps/files_external/3rdparty/composer.json
@@ -9,7 +9,7 @@
},
"require": {
"icewind/smb": "1.1.0",
- "icewind/streams": "0.4"
+ "icewind/streams": "0.4.1"
}
}
diff --git a/apps/files_external/3rdparty/composer.lock b/apps/files_external/3rdparty/composer.lock
index 7161ae19a2c..8f324299ff3 100644
--- a/apps/files_external/3rdparty/composer.lock
+++ b/apps/files_external/3rdparty/composer.lock
@@ -4,8 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "8de0823d3d0a167ee24450a111cb67b9",
- "content-hash": "6733058865c1765823b31cfbb24552e1",
+ "hash": "8ed3150b0b3e916ad66558242b4cf2a0",
+ "content-hash": "70722dcee13b3ac1c1951479b7431c97",
"packages": [
{
"name": "icewind/smb",
@@ -51,16 +51,16 @@
},
{
"name": "icewind/streams",
- "version": "0.4.0",
+ "version": "0.4.1",
"source": {
"type": "git",
"url": "https://github.com/icewind1991/Streams.git",
- "reference": "9ca40274645a967ecc3408b0ca2e6255ead1d1d3"
+ "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/Streams/zipball/9ca40274645a967ecc3408b0ca2e6255ead1d1d3",
- "reference": "9ca40274645a967ecc3408b0ca2e6255ead1d1d3",
+ "url": "https://api.github.com/repos/icewind1991/Streams/zipball/d3620e8dc410c86c2ba55579803679c4e0b289ac",
+ "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac",
"shasum": ""
},
"require": {
@@ -88,7 +88,7 @@
}
],
"description": "A set of generic stream wrappers",
- "time": "2016-03-17 12:32:25"
+ "time": "2016-06-02 14:37:52"
}
],
"packages-dev": [],
diff --git a/apps/files_external/3rdparty/composer/autoload_classmap.php b/apps/files_external/3rdparty/composer/autoload_classmap.php
index 942dbce7336..0f9a43c6cd7 100644
--- a/apps/files_external/3rdparty/composer/autoload_classmap.php
+++ b/apps/files_external/3rdparty/composer/autoload_classmap.php
@@ -42,13 +42,6 @@ return array(
'Icewind\\SMB\\Server' => $vendorDir . '/icewind/smb/src/Server.php',
'Icewind\\SMB\\Share' => $vendorDir . '/icewind/smb/src/Share.php',
'Icewind\\SMB\\System' => $vendorDir . '/icewind/smb/src/System.php',
- 'Icewind\\SMB\\Test\\AbstractShare' => $vendorDir . '/icewind/smb/tests/AbstractShare.php',
- 'Icewind\\SMB\\Test\\NativeShare' => $vendorDir . '/icewind/smb/tests/NativeShare.php',
- 'Icewind\\SMB\\Test\\NativeStream' => $vendorDir . '/icewind/smb/tests/NativeStream.php',
- 'Icewind\\SMB\\Test\\Parser' => $vendorDir . '/icewind/smb/tests/Parser.php',
- 'Icewind\\SMB\\Test\\Server' => $vendorDir . '/icewind/smb/tests/Server.php',
- 'Icewind\\SMB\\Test\\Share' => $vendorDir . '/icewind/smb/tests/Share.php',
- 'Icewind\\SMB\\Test\\TestCase' => $vendorDir . '/icewind/smb/tests/TestCase.php',
'Icewind\\SMB\\TimeZoneProvider' => $vendorDir . '/icewind/smb/src/TimeZoneProvider.php',
'Icewind\\Streams\\CallbackWrapper' => $vendorDir . '/icewind/streams/src/CallbackWrapper.php',
'Icewind\\Streams\\Directory' => $vendorDir . '/icewind/streams/src/Directory.php',
@@ -60,14 +53,6 @@ return array(
'Icewind\\Streams\\Path' => $vendorDir . '/icewind/streams/src/Path.php',
'Icewind\\Streams\\RetryWrapper' => $vendorDir . '/icewind/streams/src/RetryWrapper.php',
'Icewind\\Streams\\SeekableWrapper' => $vendorDir . '/icewind/streams/src/SeekableWrapper.php',
- 'Icewind\\Streams\\Tests\\DirectoryFilter' => $vendorDir . '/icewind/streams/tests/DirectoryFilter.php',
- 'Icewind\\Streams\\Tests\\DirectoryWrapper' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
- 'Icewind\\Streams\\Tests\\DirectoryWrapperDummy' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
- 'Icewind\\Streams\\Tests\\DirectoryWrapperNull' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
- 'Icewind\\Streams\\Tests\\PartialWrapper' => $vendorDir . '/icewind/streams/tests/RetryWrapper.php',
- 'Icewind\\Streams\\Tests\\RetryWrapper' => $vendorDir . '/icewind/streams/tests/RetryWrapper.php',
- 'Icewind\\Streams\\Tests\\SeekableWrapper' => $vendorDir . '/icewind/streams/tests/SeekableWrapper.php',
- 'Icewind\\Streams\\Tests\\UrlCallBack' => $vendorDir . '/icewind/streams/tests/UrlCallBack.php',
'Icewind\\Streams\\Url' => $vendorDir . '/icewind/streams/src/Url.php',
'Icewind\\Streams\\UrlCallback' => $vendorDir . '/icewind/streams/src/UrlCallBack.php',
'Icewind\\Streams\\Wrapper' => $vendorDir . '/icewind/streams/src/Wrapper.php',
diff --git a/apps/files_external/3rdparty/composer/installed.json b/apps/files_external/3rdparty/composer/installed.json
index 31c602de3ca..127d2bd3a19 100644
--- a/apps/files_external/3rdparty/composer/installed.json
+++ b/apps/files_external/3rdparty/composer/installed.json
@@ -1,33 +1,34 @@
[
{
- "name": "icewind/streams",
- "version": "0.4.0",
- "version_normalized": "0.4.0.0",
+ "name": "icewind/smb",
+ "version": "v1.1.0",
+ "version_normalized": "1.1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/icewind1991/Streams.git",
- "reference": "9ca40274645a967ecc3408b0ca2e6255ead1d1d3"
+ "url": "https://github.com/icewind1991/SMB.git",
+ "reference": "822f924967c68228555cea84ea44765f8e85c601"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/Streams/zipball/9ca40274645a967ecc3408b0ca2e6255ead1d1d3",
- "reference": "9ca40274645a967ecc3408b0ca2e6255ead1d1d3",
+ "url": "https://api.github.com/repos/icewind1991/SMB/zipball/822f924967c68228555cea84ea44765f8e85c601",
+ "reference": "822f924967c68228555cea84ea44765f8e85c601",
"shasum": ""
},
"require": {
+ "icewind/streams": ">=0.2.0",
"php": ">=5.3"
},
"require-dev": {
"phpunit/phpunit": "^4.8",
"satooshi/php-coveralls": "v1.0.0"
},
- "time": "2016-03-17 12:32:25",
+ "time": "2016-04-26 13:26:39",
"type": "library",
- "installation-source": "dist",
+ "installation-source": "source",
"autoload": {
"psr-4": {
- "Icewind\\Streams\\Tests\\": "tests/",
- "Icewind\\Streams\\": "src/"
+ "Icewind\\SMB\\": "src/",
+ "Icewind\\SMB\\Test\\": "tests/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -40,38 +41,37 @@
"email": "icewind@owncloud.com"
}
],
- "description": "A set of generic stream wrappers"
+ "description": "php wrapper for smbclient and libsmbclient-php"
},
{
- "name": "icewind/smb",
- "version": "v1.1.0",
- "version_normalized": "1.1.0.0",
+ "name": "icewind/streams",
+ "version": "0.4.1",
+ "version_normalized": "0.4.1.0",
"source": {
"type": "git",
- "url": "https://github.com/icewind1991/SMB.git",
- "reference": "822f924967c68228555cea84ea44765f8e85c601"
+ "url": "https://github.com/icewind1991/Streams.git",
+ "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/SMB/zipball/822f924967c68228555cea84ea44765f8e85c601",
- "reference": "822f924967c68228555cea84ea44765f8e85c601",
+ "url": "https://api.github.com/repos/icewind1991/Streams/zipball/d3620e8dc410c86c2ba55579803679c4e0b289ac",
+ "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac",
"shasum": ""
},
"require": {
- "icewind/streams": ">=0.2.0",
"php": ">=5.3"
},
"require-dev": {
"phpunit/phpunit": "^4.8",
"satooshi/php-coveralls": "v1.0.0"
},
- "time": "2016-04-26 13:26:39",
+ "time": "2016-06-02 14:37:52",
"type": "library",
- "installation-source": "source",
+ "installation-source": "dist",
"autoload": {
"psr-4": {
- "Icewind\\SMB\\": "src/",
- "Icewind\\SMB\\Test\\": "tests/"
+ "Icewind\\Streams\\Tests\\": "tests/",
+ "Icewind\\Streams\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -84,6 +84,6 @@
"email": "icewind@owncloud.com"
}
],
- "description": "php wrapper for smbclient and libsmbclient-php"
+ "description": "A set of generic stream wrappers"
}
]
diff --git a/apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php b/apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php
index 84b43f6bd02..8238f19f7c9 100644
--- a/apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php
+++ b/apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php
@@ -44,7 +44,7 @@ class RetryWrapper extends Wrapper {
$result = parent::stream_read($count);
$bytesReceived = strlen($result);
- while ($bytesReceived < $count && !$this->stream_eof()) {
+ while (strlen($result) > 0 && $bytesReceived < $count && !$this->stream_eof()) {
$result .= parent::stream_read($count - $bytesReceived);
$bytesReceived = strlen($result);
}
@@ -54,11 +54,13 @@ class RetryWrapper extends Wrapper {
public function stream_write($data) {
$bytesToSend = strlen($data);
- $result = parent::stream_write($data);
+ $bytesWritten = parent::stream_write($data);
+ $result = $bytesWritten;
- while ($result < $bytesToSend && !$this->stream_eof()) {
+ while ($bytesWritten > 0 && $result < $bytesToSend && !$this->stream_eof()) {
$dataLeft = substr($data, $result);
- $result += parent::stream_write($dataLeft);
+ $bytesWritten = parent::stream_write($dataLeft);
+ $result += $bytesWritten;
}
return $result;
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 2477f513db3..d210c158ec1 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -854,7 +854,7 @@ MountConfigListView.prototype = _.extend({
this.configureAuthMechanism($tr, storageConfig.authMechanism, onCompletion);
if (storageConfig.backendOptions) {
- $td.children().each(function() {
+ $td.find('input, select').each(function() {
var input = $(this);
var val = storageConfig.backendOptions[input.data('parameter')];
if (val !== undefined) {
@@ -1001,7 +1001,7 @@ MountConfigListView.prototype = _.extend({
newElement = $('<input type="password" class="'+classes.join(' ')+'" data-parameter="'+parameter+'" placeholder="'+ trimmedPlaceholder+'" />');
} else if (placeholder.type === MountConfigListView.ParameterTypes.BOOLEAN) {
var checkboxId = _.uniqueId('checkbox_');
- newElement = $('<input type="checkbox" id="'+checkboxId+'" class="'+classes.join(' ')+'" data-parameter="'+parameter+'" /><label for="'+checkboxId+'">'+ trimmedPlaceholder+'</label>');
+ newElement = $('<div><label><input type="checkbox" id="'+checkboxId+'" class="'+classes.join(' ')+'" data-parameter="'+parameter+'" />'+ trimmedPlaceholder+'</label></div>');
} else if (placeholder.type === MountConfigListView.ParameterTypes.HIDDEN) {
newElement = $('<input type="hidden" class="'+classes.join(' ')+'" data-parameter="'+parameter+'" />');
} else {
diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js
index 71c8d2aeac3..26ff4881eb3 100644
--- a/apps/files_external/l10n/nl.js
+++ b/apps/files_external/l10n/nl.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Step 1 failed. Exception: %s" : "Stap 1 is mislukt. Uitzondering: %s",
"Step 2 failed. Exception: %s" : "Stap 2 is mislukt. Uitzondering: %s",
"External storage" : "Externe opslag",
+ "Dropbox App Configuration" : "Dropbox app configuratie",
+ "Google Drive App Configuration" : "Google Drive app configuratie",
"Personal" : "Persoonlijk",
"System" : "Systeem",
"Grant access" : "Sta toegang toe",
@@ -16,6 +18,7 @@ OC.L10N.register(
"Error generating key pair" : "Fout bij genereren sleutelpaar",
"All users. Type to select user or group." : "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.",
"(group)" : "(groep)",
+ "Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)",
"Admin defined" : "Beheerder gedefinieerd",
"Saved" : "Bewaard",
"Empty response from the server" : "Lege reactie van de server",
diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json
index 6603af23bea..958d1f7059c 100644
--- a/apps/files_external/l10n/nl.json
+++ b/apps/files_external/l10n/nl.json
@@ -5,6 +5,8 @@
"Step 1 failed. Exception: %s" : "Stap 1 is mislukt. Uitzondering: %s",
"Step 2 failed. Exception: %s" : "Stap 2 is mislukt. Uitzondering: %s",
"External storage" : "Externe opslag",
+ "Dropbox App Configuration" : "Dropbox app configuratie",
+ "Google Drive App Configuration" : "Google Drive app configuratie",
"Personal" : "Persoonlijk",
"System" : "Systeem",
"Grant access" : "Sta toegang toe",
@@ -14,6 +16,7 @@
"Error generating key pair" : "Fout bij genereren sleutelpaar",
"All users. Type to select user or group." : "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.",
"(group)" : "(groep)",
+ "Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)",
"Admin defined" : "Beheerder gedefinieerd",
"Saved" : "Bewaard",
"Empty response from the server" : "Lege reactie van de server",
diff --git a/apps/files_external/lib/Controller/GlobalStoragesController.php b/apps/files_external/lib/Controller/GlobalStoragesController.php
index 471e3b51593..71bef7dc714 100644
--- a/apps/files_external/lib/Controller/GlobalStoragesController.php
+++ b/apps/files_external/lib/Controller/GlobalStoragesController.php
@@ -127,6 +127,7 @@ class GlobalStoragesController extends StoragesController {
* @param array $applicableUsers users for which to mount the storage
* @param array $applicableGroups groups for which to mount the storage
* @param int $priority priority
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*
* @return DataResponse
*/
diff --git a/apps/files_external/lib/Controller/StoragesController.php b/apps/files_external/lib/Controller/StoragesController.php
index e50426f4888..c1216008ffa 100644
--- a/apps/files_external/lib/Controller/StoragesController.php
+++ b/apps/files_external/lib/Controller/StoragesController.php
@@ -237,6 +237,7 @@ abstract class StoragesController extends Controller {
* on whether the remote storage is available or not.
*
* @param StorageConfig $storage storage configuration
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*/
protected function updateStorageStatus(StorageConfig &$storage, $testOnly = true) {
try {
@@ -291,6 +292,7 @@ abstract class StoragesController extends Controller {
* Get an external storage entry.
*
* @param int $id storage id
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*
* @return DataResponse
*/
diff --git a/apps/files_external/lib/Controller/UserGlobalStoragesController.php b/apps/files_external/lib/Controller/UserGlobalStoragesController.php
index f65e578507d..3006e72666d 100644
--- a/apps/files_external/lib/Controller/UserGlobalStoragesController.php
+++ b/apps/files_external/lib/Controller/UserGlobalStoragesController.php
@@ -107,6 +107,7 @@ class UserGlobalStoragesController extends StoragesController {
* Get an external storage entry.
*
* @param int $id storage id
+ * @param bool $testOnly whether to storage should only test the connection or do more things
* @return DataResponse
*
* @NoAdminRequired
@@ -139,6 +140,7 @@ class UserGlobalStoragesController extends StoragesController {
*
* @param int $id storage id
* @param array $backendOptions backend-specific options
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*
* @return DataResponse
*
diff --git a/apps/files_external/lib/Controller/UserStoragesController.php b/apps/files_external/lib/Controller/UserStoragesController.php
index 28663090e89..5dc23aad769 100644
--- a/apps/files_external/lib/Controller/UserStoragesController.php
+++ b/apps/files_external/lib/Controller/UserStoragesController.php
@@ -159,6 +159,7 @@ class UserStoragesController extends StoragesController {
* @param string $authMechanism authentication mechanism identifier
* @param array $backendOptions backend-specific options
* @param array $mountOptions backend-specific mount options
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*
* @return DataResponse
*
diff --git a/apps/files_external/lib/Lib/Storage/Dropbox.php b/apps/files_external/lib/Lib/Storage/Dropbox.php
index f15cbba0469..f0f62f9f35a 100644
--- a/apps/files_external/lib/Lib/Storage/Dropbox.php
+++ b/apps/files_external/lib/Lib/Storage/Dropbox.php
@@ -32,6 +32,7 @@ namespace OCA\Files_External\Lib\Storage;
use GuzzleHttp\Exception\RequestException;
use Icewind\Streams\IteratorDirectory;
use Icewind\Streams\RetryWrapper;
+use OCP\Files\StorageNotAvailableException;
require_once __DIR__ . '/../../../3rdparty/Dropbox/autoload.php';
@@ -94,6 +95,8 @@ class Dropbox extends \OC\Files\Storage\Common {
if ($list) {
try {
$response = $this->dropbox->getMetaData($path);
+ } catch (\Dropbox_Exception_Forbidden $e) {
+ throw new StorageNotAvailableException('Dropbox API rate limit exceeded', StorageNotAvailableException::STATUS_ERROR, $e);
} catch (\Exception $exception) {
\OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
@@ -127,6 +130,8 @@ class Dropbox extends \OC\Files\Storage\Common {
return $response;
}
return null;
+ } catch (\Dropbox_Exception_Forbidden $e) {
+ throw new StorageNotAvailableException('Dropbox API rate limit exceeded', StorageNotAvailableException::STATUS_ERROR, $e);
} catch (\Exception $exception) {
if ($exception instanceof \Dropbox_Exception_NotFound) {
// don't log, might be a file_exist check
diff --git a/apps/files_external/lib/Lib/Storage/Google.php b/apps/files_external/lib/Lib/Storage/Google.php
index 96f12800c10..0b617aafe9d 100644
--- a/apps/files_external/lib/Lib/Storage/Google.php
+++ b/apps/files_external/lib/Lib/Storage/Google.php
@@ -168,11 +168,11 @@ class Google extends \OC\Files\Storage\Common {
$path = trim($path, '/');
$this->driveFiles[$path] = $file;
if ($file === false) {
- // Set all child paths as false
+ // Remove all children
$len = strlen($path);
foreach ($this->driveFiles as $key => $file) {
if (substr($key, 0, $len) === $path) {
- $this->driveFiles[$key] = false;
+ unset($this->driveFiles[$key]);
}
}
}
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index c9cc40b0ba0..6662f637039 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -51,13 +51,17 @@
break;
case DefinitionParameter::VALUE_BOOLEAN: ?>
<?php $checkboxId = uniqid("checkbox_"); ?>
+ <div>
+ <label>
<input type="checkbox"
id="<?php p($checkboxId); ?>"
<?php if (!empty($classes)): ?> class="checkbox <?php p(implode(' ', $classes)); ?>"<?php endif; ?>
data-parameter="<?php p($parameter->getName()); ?>"
<?php if ($value === true): ?> checked="checked"<?php endif; ?>
/>
- <label for="<?php p($checkboxId); ?>"><?php p($placeholder); ?></label>
+ <?php p($placeholder); ?>
+ </label>
+ </div>
<?php
break;
case DefinitionParameter::VALUE_HIDDEN: ?>
diff --git a/apps/files_external/tests/env/start-swift-ceph.sh b/apps/files_external/tests/env/start-swift-ceph.sh
index 1e417c69057..ba17b8f42dd 100755
--- a/apps/files_external/tests/env/start-swift-ceph.sh
+++ b/apps/files_external/tests/env/start-swift-ceph.sh
@@ -24,6 +24,9 @@ docker_image=xenopathic/ceph-keystone
echo "Fetch recent ${docker_image} docker image"
docker pull ${docker_image}
+# debian 8 default comes without loaded loop module. please run "sudo modprobe loop" if you get an error here:
+lsmod | grep '^loop' || { echo "Error: kernel module loop not loaded. Needed by docker image ${docker_image}"; exit 1; }
+
# retrieve current folder to place the config in the parent folder
thisFolder=`echo $0 | sed 's#env/start-swift-ceph\.sh##'`