summaryrefslogtreecommitdiffstats
path: root/apps/files_external
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_external')
-rw-r--r--apps/files_external/appinfo/application.php5
-rw-r--r--apps/files_external/js/settings.js7
-rw-r--r--apps/files_external/l10n/cs_CZ.js17
-rw-r--r--apps/files_external/l10n/cs_CZ.json17
-rw-r--r--apps/files_external/l10n/fr.js7
-rw-r--r--apps/files_external/l10n/fr.json7
-rw-r--r--apps/files_external/l10n/id.js22
-rw-r--r--apps/files_external/l10n/id.json22
-rw-r--r--apps/files_external/l10n/it.js2
-rw-r--r--apps/files_external/l10n/it.json2
-rw-r--r--apps/files_external/l10n/ko.js23
-rw-r--r--apps/files_external/l10n/ko.json23
-rw-r--r--apps/files_external/l10n/nl.js8
-rw-r--r--apps/files_external/l10n/nl.json8
-rw-r--r--apps/files_external/l10n/pt_PT.js38
-rw-r--r--apps/files_external/l10n/pt_PT.json38
-rw-r--r--apps/files_external/l10n/tr.js22
-rw-r--r--apps/files_external/l10n/tr.json22
-rw-r--r--apps/files_external/lib/backend/amazons3.php5
-rw-r--r--apps/files_external/lib/backend/dav.php4
-rw-r--r--apps/files_external/lib/backend/dropbox.php5
-rw-r--r--apps/files_external/lib/backend/ftp.php4
-rw-r--r--apps/files_external/lib/backend/google.php5
-rw-r--r--apps/files_external/lib/backend/legacybackend.php21
-rw-r--r--apps/files_external/lib/backend/smb.php4
-rw-r--r--apps/files_external/lib/config/configadapter.php3
-rw-r--r--apps/files_external/lib/dependencytrait.php47
-rw-r--r--apps/files_external/lib/google.php2
-rw-r--r--apps/files_external/lib/legacydependencycheckpolyfill.php70
-rw-r--r--apps/files_external/service/storagesservice.php4
-rw-r--r--apps/files_external/tests/backend/legacybackendtest.php38
-rw-r--r--apps/files_external/tests/legacydependencycheckpolyfilltest.php (renamed from apps/files_external/tests/dependencytraittest.php)23
-rw-r--r--apps/files_external/tests/service/globalstoragesservicetest.php28
-rw-r--r--apps/files_external/tests/service/userglobalstoragesservicetest.php5
34 files changed, 476 insertions, 82 deletions
diff --git a/apps/files_external/appinfo/application.php b/apps/files_external/appinfo/application.php
index c00ae3ee019..3a222141fb5 100644
--- a/apps/files_external/appinfo/application.php
+++ b/apps/files_external/appinfo/application.php
@@ -37,6 +37,11 @@ class Application extends App {
$this->loadBackends();
$this->loadAuthMechanisms();
+
+ // app developers: do NOT depend on this! it will disappear with oC 9.0!
+ \OC::$server->getEventDispatcher()->dispatch(
+ 'OCA\\Files_External::loadAdditionalBackends'
+ );
}
/**
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index b542fe63d64..bf9981adabf 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -756,6 +756,13 @@ MountConfigListView.prototype = _.extend({
$tr.append(priorityEl);
$td.children().not('[type=hidden]').first().focus();
+ // FIXME default backend mount options
+ $tr.find('input.mountOptions').val(JSON.stringify({
+ 'encrypt': true,
+ 'previews': true,
+ 'filesystem_check_changes': 1
+ }));
+
$tr.find('td').last().attr('class', 'remove');
$tr.find('td.mountOptionsToggle').removeClass('hidden');
$tr.find('td').last().removeAttr('style');
diff --git a/apps/files_external/l10n/cs_CZ.js b/apps/files_external/l10n/cs_CZ.js
index b39eef71eaa..ab352880b7c 100644
--- a/apps/files_external/l10n/cs_CZ.js
+++ b/apps/files_external/l10n/cs_CZ.js
@@ -1,6 +1,9 @@
OC.L10N.register(
"files_external",
{
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace a tajné heslo jsou správné.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace a tajné heslo jsou správné.",
+ "Please provide a valid app key and secret." : "Zadejte prosím platný klíč a tajné heslo aplikace.",
"Step 1 failed. Exception: %s" : "Selhal krok 1. Výjimka: %s",
"Step 2 failed. Exception: %s" : "Selhal krok 2. Výjimka: %s",
"External storage" : "Externí úložiště",
@@ -22,12 +25,15 @@ OC.L10N.register(
"SFTP with secret key login" : "SFTP login s tajným klíčem",
"Public key" : "Veřejný klíč",
"Storage with id \"%i\" not found" : "Úložiště s id \"%i\" nebylo nalezeno",
+ "Invalid backend or authentication mechanism class" : "Neplatný backend nebo třída ověřovacího mechanismu",
"Invalid mount point" : "Neplatný přípojný bod",
"Invalid storage backend \"%s\"" : "Neplatná služba úložiště \"%s\"",
"Personal" : "Osobní",
"System" : "Systém",
"Grant access" : "Povolit přístup",
"Access granted" : "Přístup povolen",
+ "Error configuring OAuth1" : "Chyba nastavení OAuth1",
+ "Error configuring OAuth2" : "Chyba nastavení OAuth2",
"Enable encryption" : "Povolit šifrování",
"Enable previews" : "Povolit náhledy",
"Check for changes" : "Zkontrolovat změny",
@@ -39,12 +45,18 @@ OC.L10N.register(
"Saved" : "Uloženo",
"Generate keys" : "Vytvořit klíče",
"Error generating key pair" : "Chyba při vytváření páru klíčů",
+ "Access key" : "Přístupový klíč",
+ "Secret key" : "Tajný klíč",
"None" : "Žádné",
+ "OAuth1" : "OAuth1",
"App key" : "Klíč aplikace",
"App secret" : "Tajemství aplikace",
+ "OAuth2" : "OAuth2",
"Client ID" : "Klientské ID",
"Client secret" : "Klientské tajemství",
+ "Username and password" : "Uživatelské jméno a heslo",
"Password" : "Heslo",
+ "Session credentials" : "Přihlašovací údaje sezení",
"Amazon S3" : "Amazon S3",
"Hostname" : "Hostname",
"Port" : "Port",
@@ -55,11 +67,15 @@ OC.L10N.register(
"URL" : "URL",
"Secure https://" : "Zabezpečené https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "Zabezpečené ftps://",
+ "Google Drive" : "Google Drive",
"Local" : "Místní",
"Location" : "Umístění",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
"Root" : "Kořen",
+ "SMB / CIFS" : "SMB / CIFS",
"<b>Note:</b> " : "<b>Poznámka:</b>",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
@@ -71,6 +87,7 @@ OC.L10N.register(
"Scope" : "Rozsah",
"External Storage" : "Externí úložiště",
"Folder name" : "Název složky",
+ "Authentication" : "Ověření",
"Configuration" : "Nastavení",
"Available for" : "Dostupné pro",
"Advanced settings" : "Pokročilá nastavení",
diff --git a/apps/files_external/l10n/cs_CZ.json b/apps/files_external/l10n/cs_CZ.json
index c014da7976f..03afeb48b8e 100644
--- a/apps/files_external/l10n/cs_CZ.json
+++ b/apps/files_external/l10n/cs_CZ.json
@@ -1,4 +1,7 @@
{ "translations": {
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace a tajné heslo jsou správné.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace a tajné heslo jsou správné.",
+ "Please provide a valid app key and secret." : "Zadejte prosím platný klíč a tajné heslo aplikace.",
"Step 1 failed. Exception: %s" : "Selhal krok 1. Výjimka: %s",
"Step 2 failed. Exception: %s" : "Selhal krok 2. Výjimka: %s",
"External storage" : "Externí úložiště",
@@ -20,12 +23,15 @@
"SFTP with secret key login" : "SFTP login s tajným klíčem",
"Public key" : "Veřejný klíč",
"Storage with id \"%i\" not found" : "Úložiště s id \"%i\" nebylo nalezeno",
+ "Invalid backend or authentication mechanism class" : "Neplatný backend nebo třída ověřovacího mechanismu",
"Invalid mount point" : "Neplatný přípojný bod",
"Invalid storage backend \"%s\"" : "Neplatná služba úložiště \"%s\"",
"Personal" : "Osobní",
"System" : "Systém",
"Grant access" : "Povolit přístup",
"Access granted" : "Přístup povolen",
+ "Error configuring OAuth1" : "Chyba nastavení OAuth1",
+ "Error configuring OAuth2" : "Chyba nastavení OAuth2",
"Enable encryption" : "Povolit šifrování",
"Enable previews" : "Povolit náhledy",
"Check for changes" : "Zkontrolovat změny",
@@ -37,12 +43,18 @@
"Saved" : "Uloženo",
"Generate keys" : "Vytvořit klíče",
"Error generating key pair" : "Chyba při vytváření páru klíčů",
+ "Access key" : "Přístupový klíč",
+ "Secret key" : "Tajný klíč",
"None" : "Žádné",
+ "OAuth1" : "OAuth1",
"App key" : "Klíč aplikace",
"App secret" : "Tajemství aplikace",
+ "OAuth2" : "OAuth2",
"Client ID" : "Klientské ID",
"Client secret" : "Klientské tajemství",
+ "Username and password" : "Uživatelské jméno a heslo",
"Password" : "Heslo",
+ "Session credentials" : "Přihlašovací údaje sezení",
"Amazon S3" : "Amazon S3",
"Hostname" : "Hostname",
"Port" : "Port",
@@ -53,11 +65,15 @@
"URL" : "URL",
"Secure https://" : "Zabezpečené https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "Zabezpečené ftps://",
+ "Google Drive" : "Google Drive",
"Local" : "Místní",
"Location" : "Umístění",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
"Root" : "Kořen",
+ "SMB / CIFS" : "SMB / CIFS",
"<b>Note:</b> " : "<b>Poznámka:</b>",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
@@ -69,6 +85,7 @@
"Scope" : "Rozsah",
"External Storage" : "Externí úložiště",
"Folder name" : "Název složky",
+ "Authentication" : "Ověření",
"Configuration" : "Nastavení",
"Available for" : "Dostupné pro",
"Advanced settings" : "Pokročilá nastavení",
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 42944b2f2fb..8ac5b1a4466 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -27,13 +27,17 @@ OC.L10N.register(
"Storage with id \"%i\" not found" : "Stockage avec l'id \"%i\" non trouvé",
"Invalid backend or authentication mechanism class" : "Système de stockage ou méthode d'authentification non valable",
"Invalid mount point" : "Point de montage non valide",
+ "Objectstore forbidden" : "\"Objectstore\" interdit",
"Invalid storage backend \"%s\"" : "Service de stockage non valide : \"%s\"",
+ "Unsatisfied backend parameters" : "Paramètres manquants pour le service",
"Unsatisfied authentication mechanism parameters" : "Paramètres manquants pour la méthode d'authentification",
"Admin-only storage backend \"%s\"" : "Service de stockage \"%s\" pour admins seulement",
"Personal" : "Personnel",
"System" : "Système",
"Grant access" : "Autoriser l'accès",
"Access granted" : "Accès autorisé",
+ "Error configuring OAuth1" : "Erreur lors de la configuration de OAuth1",
+ "Error configuring OAuth2" : "Erreur lors de la configuration de OAuth2",
"Enable encryption" : "Activer le chiffrement",
"Enable previews" : "Activer les prévisualisations",
"Check for changes" : "Rechercher les modifications",
@@ -45,6 +49,9 @@ OC.L10N.register(
"Saved" : "Sauvegardé",
"Generate keys" : "Générer des clés",
"Error generating key pair" : "Erreur lors de la génération des clés",
+ "Access key" : "Clé d'accès",
+ "Secret key" : "Clé secrète",
+ "Builtin" : "inclus",
"None" : "Aucun",
"OAuth1" : "OAuth1",
"App key" : "App key",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index ffc2de0ef53..67b8932202f 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -25,13 +25,17 @@
"Storage with id \"%i\" not found" : "Stockage avec l'id \"%i\" non trouvé",
"Invalid backend or authentication mechanism class" : "Système de stockage ou méthode d'authentification non valable",
"Invalid mount point" : "Point de montage non valide",
+ "Objectstore forbidden" : "\"Objectstore\" interdit",
"Invalid storage backend \"%s\"" : "Service de stockage non valide : \"%s\"",
+ "Unsatisfied backend parameters" : "Paramètres manquants pour le service",
"Unsatisfied authentication mechanism parameters" : "Paramètres manquants pour la méthode d'authentification",
"Admin-only storage backend \"%s\"" : "Service de stockage \"%s\" pour admins seulement",
"Personal" : "Personnel",
"System" : "Système",
"Grant access" : "Autoriser l'accès",
"Access granted" : "Accès autorisé",
+ "Error configuring OAuth1" : "Erreur lors de la configuration de OAuth1",
+ "Error configuring OAuth2" : "Erreur lors de la configuration de OAuth2",
"Enable encryption" : "Activer le chiffrement",
"Enable previews" : "Activer les prévisualisations",
"Check for changes" : "Rechercher les modifications",
@@ -43,6 +47,9 @@
"Saved" : "Sauvegardé",
"Generate keys" : "Générer des clés",
"Error generating key pair" : "Erreur lors de la génération des clés",
+ "Access key" : "Clé d'accès",
+ "Secret key" : "Clé secrète",
+ "Builtin" : "inclus",
"None" : "Aucun",
"OAuth1" : "OAuth1",
"App key" : "App key",
diff --git a/apps/files_external/l10n/id.js b/apps/files_external/l10n/id.js
index a15106a8f74..e26ad12f3a8 100644
--- a/apps/files_external/l10n/id.js
+++ b/apps/files_external/l10n/id.js
@@ -1,6 +1,9 @@
OC.L10N.register(
"files_external",
{
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Permintaan pengambilan token gagal. Pastikan kunci dan kerahasiaan aplikasi Anda sudah benar.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Akses pengambilan token gagal. Pastikan kunci dan kerahasiaan aplikasi Anda sudah benar.",
+ "Please provide a valid app key and secret." : "Silakan berikan kunci dan kerahasiaan aplikasi yang benar.",
"Step 1 failed. Exception: %s" : "Langkah 1 gagal. Kecuali: %s",
"Step 2 failed. Exception: %s" : "Langkah 2 gagal. Kecuali: %s",
"External storage" : "Penyimpanan eksternal",
@@ -22,12 +25,19 @@ OC.L10N.register(
"SFTP with secret key login" : "SFTP dengan kunci rahasia masuk",
"Public key" : "Kunci Public",
"Storage with id \"%i\" not found" : "Penyimpanan dengan id \"%i\" tidak ditemukan",
+ "Invalid backend or authentication mechanism class" : "Beckend atau kelas mekanisme otentikasi salah.",
"Invalid mount point" : "Mount point salah",
+ "Objectstore forbidden" : "Objectstore terlarang",
"Invalid storage backend \"%s\"" : "Backend penyimpanan \"%s\" salah",
+ "Unsatisfied backend parameters" : "Parameter backend tidak lengkap",
+ "Unsatisfied authentication mechanism parameters" : "Parameter mekanisme otentikasi tidak lengkap",
+ "Admin-only storage backend \"%s\"" : "Backend penyimpanan hanya-admin \"%s\"",
"Personal" : "Pribadi",
"System" : "Sistem",
"Grant access" : "Berikan hak akses",
"Access granted" : "Akses diberikan",
+ "Error configuring OAuth1" : "Kesalahan mengkonfigurasi OAuth1",
+ "Error configuring OAuth2" : "Kesalahan mengkonfigurasi OAuth2",
"Enable encryption" : "Aktifkan enkripsi",
"Enable previews" : "Aktifkan pratinjau",
"Check for changes" : "Periksa perubahan",
@@ -39,12 +49,19 @@ OC.L10N.register(
"Saved" : "Disimpan",
"Generate keys" : "Hasilkan kunci",
"Error generating key pair" : "Kesalahan saat menghasilkan pasangan kunci",
+ "Access key" : "Kunci akses",
+ "Secret key" : "Kunci rahasia",
+ "Builtin" : "Internal",
"None" : "Tidak ada",
+ "OAuth1" : "OAuth1",
"App key" : "Kunci Apl",
"App secret" : "Rahasia Apl",
+ "OAuth2" : "OAuth2",
"Client ID" : "ID Klien",
"Client secret" : "Rahasia klien",
+ "Username and password" : "Nama pengguna dan sandi",
"Password" : "Sandi",
+ "Session credentials" : "Kredensial sesi",
"Amazon S3" : "Amazon S3",
"Hostname" : "Nama Host",
"Port" : "Port",
@@ -55,11 +72,15 @@ OC.L10N.register(
"URL" : "URL",
"Secure https://" : "Secure https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "Secure ftps://",
+ "Google Drive" : "Google Drive",
"Local" : "Lokal",
"Location" : "lokasi",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
"Root" : "Root",
+ "SMB / CIFS" : "SMB / CIFS",
"<b>Note:</b> " : "<b>Catatan:</b> ",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
@@ -71,6 +92,7 @@ OC.L10N.register(
"Scope" : "Skop",
"External Storage" : "Penyimpanan Eksternal",
"Folder name" : "Nama folder",
+ "Authentication" : "Otentikasi",
"Configuration" : "Konfigurasi",
"Available for" : "Tersedia untuk",
"Advanced settings" : "Pengaturan Lanjutan",
diff --git a/apps/files_external/l10n/id.json b/apps/files_external/l10n/id.json
index aa4990ec828..9c83475f756 100644
--- a/apps/files_external/l10n/id.json
+++ b/apps/files_external/l10n/id.json
@@ -1,4 +1,7 @@
{ "translations": {
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Permintaan pengambilan token gagal. Pastikan kunci dan kerahasiaan aplikasi Anda sudah benar.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Akses pengambilan token gagal. Pastikan kunci dan kerahasiaan aplikasi Anda sudah benar.",
+ "Please provide a valid app key and secret." : "Silakan berikan kunci dan kerahasiaan aplikasi yang benar.",
"Step 1 failed. Exception: %s" : "Langkah 1 gagal. Kecuali: %s",
"Step 2 failed. Exception: %s" : "Langkah 2 gagal. Kecuali: %s",
"External storage" : "Penyimpanan eksternal",
@@ -20,12 +23,19 @@
"SFTP with secret key login" : "SFTP dengan kunci rahasia masuk",
"Public key" : "Kunci Public",
"Storage with id \"%i\" not found" : "Penyimpanan dengan id \"%i\" tidak ditemukan",
+ "Invalid backend or authentication mechanism class" : "Beckend atau kelas mekanisme otentikasi salah.",
"Invalid mount point" : "Mount point salah",
+ "Objectstore forbidden" : "Objectstore terlarang",
"Invalid storage backend \"%s\"" : "Backend penyimpanan \"%s\" salah",
+ "Unsatisfied backend parameters" : "Parameter backend tidak lengkap",
+ "Unsatisfied authentication mechanism parameters" : "Parameter mekanisme otentikasi tidak lengkap",
+ "Admin-only storage backend \"%s\"" : "Backend penyimpanan hanya-admin \"%s\"",
"Personal" : "Pribadi",
"System" : "Sistem",
"Grant access" : "Berikan hak akses",
"Access granted" : "Akses diberikan",
+ "Error configuring OAuth1" : "Kesalahan mengkonfigurasi OAuth1",
+ "Error configuring OAuth2" : "Kesalahan mengkonfigurasi OAuth2",
"Enable encryption" : "Aktifkan enkripsi",
"Enable previews" : "Aktifkan pratinjau",
"Check for changes" : "Periksa perubahan",
@@ -37,12 +47,19 @@
"Saved" : "Disimpan",
"Generate keys" : "Hasilkan kunci",
"Error generating key pair" : "Kesalahan saat menghasilkan pasangan kunci",
+ "Access key" : "Kunci akses",
+ "Secret key" : "Kunci rahasia",
+ "Builtin" : "Internal",
"None" : "Tidak ada",
+ "OAuth1" : "OAuth1",
"App key" : "Kunci Apl",
"App secret" : "Rahasia Apl",
+ "OAuth2" : "OAuth2",
"Client ID" : "ID Klien",
"Client secret" : "Rahasia klien",
+ "Username and password" : "Nama pengguna dan sandi",
"Password" : "Sandi",
+ "Session credentials" : "Kredensial sesi",
"Amazon S3" : "Amazon S3",
"Hostname" : "Nama Host",
"Port" : "Port",
@@ -53,11 +70,15 @@
"URL" : "URL",
"Secure https://" : "Secure https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "Secure ftps://",
+ "Google Drive" : "Google Drive",
"Local" : "Lokal",
"Location" : "lokasi",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
"Root" : "Root",
+ "SMB / CIFS" : "SMB / CIFS",
"<b>Note:</b> " : "<b>Catatan:</b> ",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
@@ -69,6 +90,7 @@
"Scope" : "Skop",
"External Storage" : "Penyimpanan Eksternal",
"Folder name" : "Nama folder",
+ "Authentication" : "Otentikasi",
"Configuration" : "Konfigurasi",
"Available for" : "Tersedia untuk",
"Advanced settings" : "Pengaturan Lanjutan",
diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js
index 42cd6429bc4..6e3596e197d 100644
--- a/apps/files_external/l10n/it.js
+++ b/apps/files_external/l10n/it.js
@@ -27,9 +27,11 @@ OC.L10N.register(
"Storage with id \"%i\" not found" : "Archiviazione con ID \"%i\" non trovata",
"Invalid backend or authentication mechanism class" : "Motore o classe del meccanismo di autenticazione non valido",
"Invalid mount point" : "Punto di mount non valido",
+ "Objectstore forbidden" : "Objectstore vietato",
"Invalid storage backend \"%s\"" : "Motore di archiviazione \"%s\" non valido",
"Unsatisfied backend parameters" : "Parametri del motore non soddisfatti",
"Unsatisfied authentication mechanism parameters" : "Parametri del meccanismo di autenticazione non soddisfatti",
+ "Admin-only storage backend \"%s\"" : "Motore di archiviazione per soli amministratori \"%s\"",
"Personal" : "Personale",
"System" : "Sistema",
"Grant access" : "Concedi l'accesso",
diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json
index 27e33f9adad..1c64b7dbadd 100644
--- a/apps/files_external/l10n/it.json
+++ b/apps/files_external/l10n/it.json
@@ -25,9 +25,11 @@
"Storage with id \"%i\" not found" : "Archiviazione con ID \"%i\" non trovata",
"Invalid backend or authentication mechanism class" : "Motore o classe del meccanismo di autenticazione non valido",
"Invalid mount point" : "Punto di mount non valido",
+ "Objectstore forbidden" : "Objectstore vietato",
"Invalid storage backend \"%s\"" : "Motore di archiviazione \"%s\" non valido",
"Unsatisfied backend parameters" : "Parametri del motore non soddisfatti",
"Unsatisfied authentication mechanism parameters" : "Parametri del meccanismo di autenticazione non soddisfatti",
+ "Admin-only storage backend \"%s\"" : "Motore di archiviazione per soli amministratori \"%s\"",
"Personal" : "Personale",
"System" : "Sistema",
"Grant access" : "Concedi l'accesso",
diff --git a/apps/files_external/l10n/ko.js b/apps/files_external/l10n/ko.js
index 3b4ef4fd5ab..48ba2f23a59 100644
--- a/apps/files_external/l10n/ko.js
+++ b/apps/files_external/l10n/ko.js
@@ -1,6 +1,9 @@
OC.L10N.register(
"files_external",
{
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "요청 토큰을 가져올 수 없습니다. 앱 키와 비밀 값이 올바른지 확인하십시오.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "접근 토큰을 가져올 수 없습니다. 앱 키와 비밀 값이 올바른지 확인하십시오.",
+ "Please provide a valid app key and secret." : "올바른 앱 키와 비밀 값을 입력하십시오.",
"Step 1 failed. Exception: %s" : "1단계 실패. 예외: %s",
"Step 2 failed. Exception: %s" : "2단계 실패. 예외: %s",
"External storage" : "외부 저장소",
@@ -22,12 +25,19 @@ OC.L10N.register(
"SFTP with secret key login" : "비밀 키 로그인을 사용하는 SFTP",
"Public key" : "공개 키",
"Storage with id \"%i\" not found" : "ID가 \"%i\"인 저장소를 찾을 수 없음",
+ "Invalid backend or authentication mechanism class" : "백엔드나 인증 방식 클래스가 잘못됨",
"Invalid mount point" : "잘못된 마운트 지점",
+ "Objectstore forbidden" : "Objectstore에 접근 금지됨",
"Invalid storage backend \"%s\"" : "잘못된 저장소 백엔드 \"%s\"",
+ "Unsatisfied backend parameters" : "백엔드 인자가 부족함",
+ "Unsatisfied authentication mechanism parameters" : "인증 방식 인자가 부족함",
+ "Admin-only storage backend \"%s\"" : "관리자만 접근할 수 있는 저장소 백엔드 \"%s\"",
"Personal" : "개인",
"System" : "시스템",
"Grant access" : "접근 권한 부여",
"Access granted" : "접근 허가됨",
+ "Error configuring OAuth1" : "OAuth1 설정 오류",
+ "Error configuring OAuth2" : "OAuth2 설정 오류",
"Enable encryption" : "암호화 사용",
"Enable previews" : "미리 보기 사용",
"Check for changes" : "변경 사항 감시",
@@ -39,12 +49,19 @@ OC.L10N.register(
"Saved" : "저장됨",
"Generate keys" : "키 생성",
"Error generating key pair" : "키 쌍을 생성하는 중 오류 발생",
+ "Access key" : "접근 키",
+ "Secret key" : "비밀 키",
+ "Builtin" : "내장",
"None" : "없음",
+ "OAuth1" : "OAuth1",
"App key" : "앱 키",
"App secret" : "앱 비밀 값",
+ "OAuth2" : "OAuth2",
"Client ID" : "클라이언트 ID",
"Client secret" : "클라이언트 비밀 값",
+ "Username and password" : "사용자 이름과 암호",
"Password" : "암호",
+ "Session credentials" : "세션 접근 정보",
"Amazon S3" : "Amazon S3",
"Hostname" : "호스트 이름",
"Port" : "포트",
@@ -55,10 +72,15 @@ OC.L10N.register(
"URL" : "URL",
"Secure https://" : "보안 https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "보안 ftps://",
+ "Google Drive" : "Google 드라이브",
"Local" : "로컬",
"Location" : "위치",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
+ "Root" : "루트",
+ "SMB / CIFS" : "SMB/CIFS",
"<b>Note:</b> " : "<b>메모:</b>",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP cURL 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP FTP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
@@ -70,6 +92,7 @@ OC.L10N.register(
"Scope" : "범위",
"External Storage" : "외부 저장소",
"Folder name" : "폴더 이름",
+ "Authentication" : "인증",
"Configuration" : "설정",
"Available for" : "다음으로 사용 가능",
"Advanced settings" : "고급 설정",
diff --git a/apps/files_external/l10n/ko.json b/apps/files_external/l10n/ko.json
index eeac61cf666..9a0744a867f 100644
--- a/apps/files_external/l10n/ko.json
+++ b/apps/files_external/l10n/ko.json
@@ -1,4 +1,7 @@
{ "translations": {
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "요청 토큰을 가져올 수 없습니다. 앱 키와 비밀 값이 올바른지 확인하십시오.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "접근 토큰을 가져올 수 없습니다. 앱 키와 비밀 값이 올바른지 확인하십시오.",
+ "Please provide a valid app key and secret." : "올바른 앱 키와 비밀 값을 입력하십시오.",
"Step 1 failed. Exception: %s" : "1단계 실패. 예외: %s",
"Step 2 failed. Exception: %s" : "2단계 실패. 예외: %s",
"External storage" : "외부 저장소",
@@ -20,12 +23,19 @@
"SFTP with secret key login" : "비밀 키 로그인을 사용하는 SFTP",
"Public key" : "공개 키",
"Storage with id \"%i\" not found" : "ID가 \"%i\"인 저장소를 찾을 수 없음",
+ "Invalid backend or authentication mechanism class" : "백엔드나 인증 방식 클래스가 잘못됨",
"Invalid mount point" : "잘못된 마운트 지점",
+ "Objectstore forbidden" : "Objectstore에 접근 금지됨",
"Invalid storage backend \"%s\"" : "잘못된 저장소 백엔드 \"%s\"",
+ "Unsatisfied backend parameters" : "백엔드 인자가 부족함",
+ "Unsatisfied authentication mechanism parameters" : "인증 방식 인자가 부족함",
+ "Admin-only storage backend \"%s\"" : "관리자만 접근할 수 있는 저장소 백엔드 \"%s\"",
"Personal" : "개인",
"System" : "시스템",
"Grant access" : "접근 권한 부여",
"Access granted" : "접근 허가됨",
+ "Error configuring OAuth1" : "OAuth1 설정 오류",
+ "Error configuring OAuth2" : "OAuth2 설정 오류",
"Enable encryption" : "암호화 사용",
"Enable previews" : "미리 보기 사용",
"Check for changes" : "변경 사항 감시",
@@ -37,12 +47,19 @@
"Saved" : "저장됨",
"Generate keys" : "키 생성",
"Error generating key pair" : "키 쌍을 생성하는 중 오류 발생",
+ "Access key" : "접근 키",
+ "Secret key" : "비밀 키",
+ "Builtin" : "내장",
"None" : "없음",
+ "OAuth1" : "OAuth1",
"App key" : "앱 키",
"App secret" : "앱 비밀 값",
+ "OAuth2" : "OAuth2",
"Client ID" : "클라이언트 ID",
"Client secret" : "클라이언트 비밀 값",
+ "Username and password" : "사용자 이름과 암호",
"Password" : "암호",
+ "Session credentials" : "세션 접근 정보",
"Amazon S3" : "Amazon S3",
"Hostname" : "호스트 이름",
"Port" : "포트",
@@ -53,10 +70,15 @@
"URL" : "URL",
"Secure https://" : "보안 https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "보안 ftps://",
+ "Google Drive" : "Google 드라이브",
"Local" : "로컬",
"Location" : "위치",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
+ "Root" : "루트",
+ "SMB / CIFS" : "SMB/CIFS",
"<b>Note:</b> " : "<b>메모:</b>",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP cURL 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP FTP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
@@ -68,6 +90,7 @@
"Scope" : "범위",
"External Storage" : "외부 저장소",
"Folder name" : "폴더 이름",
+ "Authentication" : "인증",
"Configuration" : "설정",
"Available for" : "다음으로 사용 가능",
"Advanced settings" : "고급 설정",
diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js
index a9a66934753..d43bb0f9794 100644
--- a/apps/files_external/l10n/nl.js
+++ b/apps/files_external/l10n/nl.js
@@ -1,6 +1,9 @@
OC.L10N.register(
"files_external",
{
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Ophalen aanvraag tokens mislukt. Verifieer dat uw app sleutel en geheime sleutel juist zijn.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Ophalen toegangstokens mislukt. Verifieer dat uw app sleutel en geheime sleutel juist zijn.",
+ "Please provide a valid app key and secret." : "Geef een geldige app sleutel en geheime sleutel op.",
"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",
@@ -22,8 +25,13 @@ OC.L10N.register(
"SFTP with secret key login" : "SFTP met geheime sleutel inlog",
"Public key" : "Publieke sleutel",
"Storage with id \"%i\" not found" : "Opslag met id \"%i\" niet gevonden",
+ "Invalid backend or authentication mechanism class" : "Ongeldige backend of authenticatie mechanisme klasse",
"Invalid mount point" : "Ongeldig aankoppelpunt",
+ "Objectstore forbidden" : "Objectopslag verboden",
"Invalid storage backend \"%s\"" : "Ongeldig opslagsysteem \"%s\"",
+ "Unsatisfied backend parameters" : "Onvoldoende backend parameters",
+ "Unsatisfied authentication mechanism parameters" : "Onvoldoende authenticatiemechanisme parameters",
+ "Admin-only storage backend \"%s\"" : "Alleen voor beheerders opslagbackend '%s\"",
"Personal" : "Persoonlijk",
"System" : "Systeem",
"Grant access" : "Sta toegang toe",
diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json
index bd3fd953a26..b5c0bf78542 100644
--- a/apps/files_external/l10n/nl.json
+++ b/apps/files_external/l10n/nl.json
@@ -1,4 +1,7 @@
{ "translations": {
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Ophalen aanvraag tokens mislukt. Verifieer dat uw app sleutel en geheime sleutel juist zijn.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Ophalen toegangstokens mislukt. Verifieer dat uw app sleutel en geheime sleutel juist zijn.",
+ "Please provide a valid app key and secret." : "Geef een geldige app sleutel en geheime sleutel op.",
"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",
@@ -20,8 +23,13 @@
"SFTP with secret key login" : "SFTP met geheime sleutel inlog",
"Public key" : "Publieke sleutel",
"Storage with id \"%i\" not found" : "Opslag met id \"%i\" niet gevonden",
+ "Invalid backend or authentication mechanism class" : "Ongeldige backend of authenticatie mechanisme klasse",
"Invalid mount point" : "Ongeldig aankoppelpunt",
+ "Objectstore forbidden" : "Objectopslag verboden",
"Invalid storage backend \"%s\"" : "Ongeldig opslagsysteem \"%s\"",
+ "Unsatisfied backend parameters" : "Onvoldoende backend parameters",
+ "Unsatisfied authentication mechanism parameters" : "Onvoldoende authenticatiemechanisme parameters",
+ "Admin-only storage backend \"%s\"" : "Alleen voor beheerders opslagbackend '%s\"",
"Personal" : "Persoonlijk",
"System" : "Systeem",
"Grant access" : "Sta toegang toe",
diff --git a/apps/files_external/l10n/pt_PT.js b/apps/files_external/l10n/pt_PT.js
index 44c542d596c..182eb7f17f1 100644
--- a/apps/files_external/l10n/pt_PT.js
+++ b/apps/files_external/l10n/pt_PT.js
@@ -1,6 +1,9 @@
OC.L10N.register(
"files_external",
{
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Não foi possível obter as senhas solicitadas. Verifique se o código e o segredo da sua app estão corretos.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Não foi possível obter as senhas de acesso. Verifique se o código e o segredo da sua app estão corretos.",
+ "Please provide a valid app key and secret." : "Por favor, indique um código e segredo de app válidos.",
"Step 1 failed. Exception: %s" : "Passo 1 falhou. Exceção: %s",
"Step 2 failed. Exception: %s" : "Passo 2 falhou. Exceção: %s",
"External storage" : "Armazenamento Externo",
@@ -10,34 +13,50 @@ OC.L10N.register(
"Region (optional for OpenStack Object Storage)" : "Região (opcional para OpenStack Object Storage)",
"API Key (required for Rackspace Cloud Files)" : "Chave API (necessário para Rackspace Cloud File)",
"Tenantname (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)",
- "Password (required for OpenStack Object Storage)" : "Senha (necessária para OpenStack Object Storage)",
+ "Password (required for OpenStack Object Storage)" : "Palavra-passe (necessária para OpenStack Object Storage)",
"Service Name (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)",
"URL of identity endpoint (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)",
- "Timeout of HTTP requests in seconds" : "Timeout de pedidos HTTP em segundos",
+ "Timeout of HTTP requests in seconds" : "Expiração de pedidos HTTP em segundos",
"SMB / CIFS using OC login" : "SMB / CIFS utilizando o início de sessão OC",
"Host" : "Anfitrião",
- "Username as share" : "Utilizar nome de utilizador como partilha",
+ "Username as share" : "Nome de utilizador como partilha",
"Share" : "Compartilhar",
"Remote subfolder" : "Subpasta remota ",
"Public key" : "Chave pública",
- "Storage with id \"%i\" not found" : "Armazenamento com ID \"%i\" não encontrado",
+ "Storage with id \"%i\" not found" : "Não foi encontrado o armazenamento com a id. \"%i\"",
"Invalid mount point" : "Ponto de montagem inválido",
"Invalid storage backend \"%s\"" : "Backend de armazenamento inválido \"%s\"",
+ "Unsatisfied authentication mechanism parameters" : "Parâmetros do mecanismo de autenticação inválidos",
"Personal" : "Pessoal",
"System" : "Sistema",
"Grant access" : "Conceder acesso",
"Access granted" : "Acesso autorizado",
+ "Error configuring OAuth1" : "Erro de configuração OAuth1",
+ "Error configuring OAuth2" : "Erro de configuração OAuth2",
+ "Enable encryption" : "Ative a encriptação",
+ "Enable previews" : "Ative as pré-visualizações",
+ "Check for changes" : "Verifique as suas alterações",
+ "Never" : "Nunca",
+ "Once every direct access" : "Uma vez em cada acesso direto",
+ "Every time the filesystem is used" : "De todas as vezes que o sistema de ficheiros é usado",
"All users. Type to select user or group." : "Todos os utilizadores. Digite para selecionar o utilizador ou grupo.",
"(group)" : "(grupo)",
"Saved" : "Guardado",
"Generate keys" : "Gerar chaves",
"Error generating key pair" : "Erro ao gerar chave par",
+ "Access key" : "Código de acesso",
+ "Secret key" : "Código secreto",
+ "Builtin" : "Integrado",
"None" : "Nenhum",
+ "OAuth1" : "OAuth1",
"App key" : "Chave da App",
- "App secret" : "Chave secreta da aplicação",
+ "App secret" : "Segredo da app",
+ "OAuth2" : "OAuth2",
"Client ID" : "Id. do Cliente",
- "Client secret" : "Segredo do cliente",
+ "Client secret" : "Segredo do cliente\\\\",
+ "Username and password" : "Nome de utilizador e palavra-passe",
"Password" : "Palavra-passe",
+ "Session credentials" : "Credenciais da sessão",
"Amazon S3" : "Amazon S3",
"Hostname" : "Nome do Anfitrião",
"Port" : "Porta",
@@ -48,11 +67,15 @@ OC.L10N.register(
"URL" : "URL",
"Secure https://" : "https:// Seguro",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "ftps:// Seguro",
+ "Google Drive" : "Google Drive",
"Local" : "Local",
"Location" : "Localização:",
"ownCloud" : "ownCloud",
- "Root" : "Raiz",
+ "SFTP" : "SFTP",
+ "Root" : "Root",
+ "SMB / CIFS" : "SMB / CIFS",
"<b>Note:</b> " : "<b>Nota:</b> ",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
@@ -64,6 +87,7 @@ OC.L10N.register(
"Scope" : "Âmbito",
"External Storage" : "Armazenamento Externo",
"Folder name" : "Nome da pasta",
+ "Authentication" : "Autenticação",
"Configuration" : "Configuração",
"Available for" : "Disponível para ",
"Advanced settings" : "Definições avançadas",
diff --git a/apps/files_external/l10n/pt_PT.json b/apps/files_external/l10n/pt_PT.json
index cda3b0bbd07..0f3a9298057 100644
--- a/apps/files_external/l10n/pt_PT.json
+++ b/apps/files_external/l10n/pt_PT.json
@@ -1,4 +1,7 @@
{ "translations": {
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Não foi possível obter as senhas solicitadas. Verifique se o código e o segredo da sua app estão corretos.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Não foi possível obter as senhas de acesso. Verifique se o código e o segredo da sua app estão corretos.",
+ "Please provide a valid app key and secret." : "Por favor, indique um código e segredo de app válidos.",
"Step 1 failed. Exception: %s" : "Passo 1 falhou. Exceção: %s",
"Step 2 failed. Exception: %s" : "Passo 2 falhou. Exceção: %s",
"External storage" : "Armazenamento Externo",
@@ -8,34 +11,50 @@
"Region (optional for OpenStack Object Storage)" : "Região (opcional para OpenStack Object Storage)",
"API Key (required for Rackspace Cloud Files)" : "Chave API (necessário para Rackspace Cloud File)",
"Tenantname (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)",
- "Password (required for OpenStack Object Storage)" : "Senha (necessária para OpenStack Object Storage)",
+ "Password (required for OpenStack Object Storage)" : "Palavra-passe (necessária para OpenStack Object Storage)",
"Service Name (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)",
"URL of identity endpoint (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)",
- "Timeout of HTTP requests in seconds" : "Timeout de pedidos HTTP em segundos",
+ "Timeout of HTTP requests in seconds" : "Expiração de pedidos HTTP em segundos",
"SMB / CIFS using OC login" : "SMB / CIFS utilizando o início de sessão OC",
"Host" : "Anfitrião",
- "Username as share" : "Utilizar nome de utilizador como partilha",
+ "Username as share" : "Nome de utilizador como partilha",
"Share" : "Compartilhar",
"Remote subfolder" : "Subpasta remota ",
"Public key" : "Chave pública",
- "Storage with id \"%i\" not found" : "Armazenamento com ID \"%i\" não encontrado",
+ "Storage with id \"%i\" not found" : "Não foi encontrado o armazenamento com a id. \"%i\"",
"Invalid mount point" : "Ponto de montagem inválido",
"Invalid storage backend \"%s\"" : "Backend de armazenamento inválido \"%s\"",
+ "Unsatisfied authentication mechanism parameters" : "Parâmetros do mecanismo de autenticação inválidos",
"Personal" : "Pessoal",
"System" : "Sistema",
"Grant access" : "Conceder acesso",
"Access granted" : "Acesso autorizado",
+ "Error configuring OAuth1" : "Erro de configuração OAuth1",
+ "Error configuring OAuth2" : "Erro de configuração OAuth2",
+ "Enable encryption" : "Ative a encriptação",
+ "Enable previews" : "Ative as pré-visualizações",
+ "Check for changes" : "Verifique as suas alterações",
+ "Never" : "Nunca",
+ "Once every direct access" : "Uma vez em cada acesso direto",
+ "Every time the filesystem is used" : "De todas as vezes que o sistema de ficheiros é usado",
"All users. Type to select user or group." : "Todos os utilizadores. Digite para selecionar o utilizador ou grupo.",
"(group)" : "(grupo)",
"Saved" : "Guardado",
"Generate keys" : "Gerar chaves",
"Error generating key pair" : "Erro ao gerar chave par",
+ "Access key" : "Código de acesso",
+ "Secret key" : "Código secreto",
+ "Builtin" : "Integrado",
"None" : "Nenhum",
+ "OAuth1" : "OAuth1",
"App key" : "Chave da App",
- "App secret" : "Chave secreta da aplicação",
+ "App secret" : "Segredo da app",
+ "OAuth2" : "OAuth2",
"Client ID" : "Id. do Cliente",
- "Client secret" : "Segredo do cliente",
+ "Client secret" : "Segredo do cliente\\\\",
+ "Username and password" : "Nome de utilizador e palavra-passe",
"Password" : "Palavra-passe",
+ "Session credentials" : "Credenciais da sessão",
"Amazon S3" : "Amazon S3",
"Hostname" : "Nome do Anfitrião",
"Port" : "Porta",
@@ -46,11 +65,15 @@
"URL" : "URL",
"Secure https://" : "https:// Seguro",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "ftps:// Seguro",
+ "Google Drive" : "Google Drive",
"Local" : "Local",
"Location" : "Localização:",
"ownCloud" : "ownCloud",
- "Root" : "Raiz",
+ "SFTP" : "SFTP",
+ "Root" : "Root",
+ "SMB / CIFS" : "SMB / CIFS",
"<b>Note:</b> " : "<b>Nota:</b> ",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
@@ -62,6 +85,7 @@
"Scope" : "Âmbito",
"External Storage" : "Armazenamento Externo",
"Folder name" : "Nome da pasta",
+ "Authentication" : "Autenticação",
"Configuration" : "Configuração",
"Available for" : "Disponível para ",
"Advanced settings" : "Definições avançadas",
diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js
index 81418098ea0..68e69034857 100644
--- a/apps/files_external/l10n/tr.js
+++ b/apps/files_external/l10n/tr.js
@@ -1,6 +1,9 @@
OC.L10N.register(
"files_external",
{
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Getirme istek jetonları başarısız oldu. Uygulama anahtarınızın ve gizli bilginin doğruluğunu kontrol edin.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Getirme erişim jetonları başarısız oldu. Uygulama anahtarınızın ve gizli bilginin doğruluğunu kontrol edin.",
+ "Please provide a valid app key and secret." : "Lütfen geçerli bir uygulama anahtarı ve gizli bilgisini girin.",
"Step 1 failed. Exception: %s" : "Adım 1 başarısız. Özel durum: %s",
"Step 2 failed. Exception: %s" : "Adım 2 başarısız. Özel durum: %s",
"External storage" : "Harici depolama",
@@ -22,12 +25,19 @@ OC.L10N.register(
"SFTP with secret key login" : "Gizli anahtar oturumu ile SFTP",
"Public key" : "Ortak anahtar",
"Storage with id \"%i\" not found" : "\"%i\" kimliği ile bir depolama bulunamadı",
+ "Invalid backend or authentication mechanism class" : "Geçersiz arkauç veya kimlik doğrulama mekanizma sınıfı",
"Invalid mount point" : "Geçersiz bağlama noktası",
+ "Objectstore forbidden" : "Nesne deposu yasaktır",
"Invalid storage backend \"%s\"" : "Geçersiz depolama arka ucu \"%s\"",
+ "Unsatisfied backend parameters" : "Yetersiz arkauç parametreleri",
+ "Unsatisfied authentication mechanism parameters" : "Yetersiz kimlik doğrulama mekanizması parametreleri",
+ "Admin-only storage backend \"%s\"" : "Sadece yönetici erişimli depolama arkaucu \"%s\"",
"Personal" : "Kişisel",
"System" : "Sistem",
"Grant access" : "Erişimi sağla",
"Access granted" : "Giriş kabul edildi",
+ "Error configuring OAuth1" : "OAuth1 yapılandırma hatası",
+ "Error configuring OAuth2" : "OAuth2 yapılandırma hatası",
"Enable encryption" : "Şifrelemeyi aç",
"Enable previews" : "Önizlemeleri aç",
"Check for changes" : "Değişiklikleri denetle",
@@ -39,12 +49,19 @@ OC.L10N.register(
"Saved" : "Kaydedildi",
"Generate keys" : "Anahtarlar üret",
"Error generating key pair" : "Anahtar çifti üretirken hata",
+ "Access key" : "Erişim anahtarı",
+ "Secret key" : "Gizli anahtar",
+ "Builtin" : "Yerleşik",
"None" : "Hiçbiri",
+ "OAuth1" : "OAuth1",
"App key" : "Uyg. anahtarı",
"App secret" : "Uyg. parolası",
+ "OAuth2" : "OAuth2",
"Client ID" : "İstemci kimliği",
"Client secret" : "İstemci parolası",
+ "Username and password" : "Kullanıcı adı ve parola",
"Password" : "Parola",
+ "Session credentials" : "Oturum bilgileri",
"Amazon S3" : "Amazon S3",
"Hostname" : "Makine adı",
"Port" : "Port",
@@ -55,11 +72,15 @@ OC.L10N.register(
"URL" : "URL",
"Secure https://" : "Güvenli https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "Güvenli ftps://",
+ "Google Drive" : "Google Drive",
"Local" : "Yerel",
"Location" : "Konum",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
"Root" : "Kök",
+ "SMB / CIFS" : "SMB / CIFS",
"<b>Note:</b> " : "<b>Not:</b> ",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
@@ -71,6 +92,7 @@ OC.L10N.register(
"Scope" : "Kapsam",
"External Storage" : "Harici Depolama",
"Folder name" : "Klasör ismi",
+ "Authentication" : "Kimlik Doğrulama",
"Configuration" : "Yapılandırma",
"Available for" : "Kullanabilenler",
"Advanced settings" : "Gelişmiş ayarlar",
diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json
index 48349335bf4..7859e8e08dc 100644
--- a/apps/files_external/l10n/tr.json
+++ b/apps/files_external/l10n/tr.json
@@ -1,4 +1,7 @@
{ "translations": {
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Getirme istek jetonları başarısız oldu. Uygulama anahtarınızın ve gizli bilginin doğruluğunu kontrol edin.",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Getirme erişim jetonları başarısız oldu. Uygulama anahtarınızın ve gizli bilginin doğruluğunu kontrol edin.",
+ "Please provide a valid app key and secret." : "Lütfen geçerli bir uygulama anahtarı ve gizli bilgisini girin.",
"Step 1 failed. Exception: %s" : "Adım 1 başarısız. Özel durum: %s",
"Step 2 failed. Exception: %s" : "Adım 2 başarısız. Özel durum: %s",
"External storage" : "Harici depolama",
@@ -20,12 +23,19 @@
"SFTP with secret key login" : "Gizli anahtar oturumu ile SFTP",
"Public key" : "Ortak anahtar",
"Storage with id \"%i\" not found" : "\"%i\" kimliği ile bir depolama bulunamadı",
+ "Invalid backend or authentication mechanism class" : "Geçersiz arkauç veya kimlik doğrulama mekanizma sınıfı",
"Invalid mount point" : "Geçersiz bağlama noktası",
+ "Objectstore forbidden" : "Nesne deposu yasaktır",
"Invalid storage backend \"%s\"" : "Geçersiz depolama arka ucu \"%s\"",
+ "Unsatisfied backend parameters" : "Yetersiz arkauç parametreleri",
+ "Unsatisfied authentication mechanism parameters" : "Yetersiz kimlik doğrulama mekanizması parametreleri",
+ "Admin-only storage backend \"%s\"" : "Sadece yönetici erişimli depolama arkaucu \"%s\"",
"Personal" : "Kişisel",
"System" : "Sistem",
"Grant access" : "Erişimi sağla",
"Access granted" : "Giriş kabul edildi",
+ "Error configuring OAuth1" : "OAuth1 yapılandırma hatası",
+ "Error configuring OAuth2" : "OAuth2 yapılandırma hatası",
"Enable encryption" : "Şifrelemeyi aç",
"Enable previews" : "Önizlemeleri aç",
"Check for changes" : "Değişiklikleri denetle",
@@ -37,12 +47,19 @@
"Saved" : "Kaydedildi",
"Generate keys" : "Anahtarlar üret",
"Error generating key pair" : "Anahtar çifti üretirken hata",
+ "Access key" : "Erişim anahtarı",
+ "Secret key" : "Gizli anahtar",
+ "Builtin" : "Yerleşik",
"None" : "Hiçbiri",
+ "OAuth1" : "OAuth1",
"App key" : "Uyg. anahtarı",
"App secret" : "Uyg. parolası",
+ "OAuth2" : "OAuth2",
"Client ID" : "İstemci kimliği",
"Client secret" : "İstemci parolası",
+ "Username and password" : "Kullanıcı adı ve parola",
"Password" : "Parola",
+ "Session credentials" : "Oturum bilgileri",
"Amazon S3" : "Amazon S3",
"Hostname" : "Makine adı",
"Port" : "Port",
@@ -53,11 +70,15 @@
"URL" : "URL",
"Secure https://" : "Güvenli https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Secure ftps://" : "Güvenli ftps://",
+ "Google Drive" : "Google Drive",
"Local" : "Yerel",
"Location" : "Konum",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
"Root" : "Kök",
+ "SMB / CIFS" : "SMB / CIFS",
"<b>Note:</b> " : "<b>Not:</b> ",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
@@ -69,6 +90,7 @@
"Scope" : "Kapsam",
"External Storage" : "Harici Depolama",
"Folder name" : "Klasör ismi",
+ "Authentication" : "Kimlik Doğrulama",
"Configuration" : "Yapılandırma",
"Available for" : "Kullanabilenler",
"Advanced settings" : "Gelişmiş ayarlar",
diff --git a/apps/files_external/lib/backend/amazons3.php b/apps/files_external/lib/backend/amazons3.php
index 880d47621f3..1cf62d7cb09 100644
--- a/apps/files_external/lib/backend/amazons3.php
+++ b/apps/files_external/lib/backend/amazons3.php
@@ -26,10 +26,14 @@ use \OCA\Files_External\Lib\Backend\Backend;
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Lib\Auth\AuthMechanism;
use \OCA\Files_External\Service\BackendService;
+use \OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
+
use \OCA\Files_External\Lib\Auth\AmazonS3\AccessKey;
class AmazonS3 extends Backend {
+ use LegacyDependencyCheckPolyfill;
+
public function __construct(IL10N $l, AccessKey $legacyAuth) {
$this
->setIdentifier('amazons3')
@@ -49,7 +53,6 @@ class AmazonS3 extends Backend {
(new DefinitionParameter('use_path_style', $l->t('Enable Path Style')))
->setType(DefinitionParameter::VALUE_BOOLEAN),
])
- ->setDependencyCheck('\OC\Files\Storage\AmazonS3::checkDependencies')
->addAuthScheme(AccessKey::SCHEME_AMAZONS3_ACCESSKEY)
->setLegacyAuthMechanism($legacyAuth)
;
diff --git a/apps/files_external/lib/backend/dav.php b/apps/files_external/lib/backend/dav.php
index 5ae6d122588..c4f446548e1 100644
--- a/apps/files_external/lib/backend/dav.php
+++ b/apps/files_external/lib/backend/dav.php
@@ -26,11 +26,14 @@ use \OCA\Files_External\Lib\Backend\Backend;
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Lib\Auth\AuthMechanism;
use \OCA\Files_External\Service\BackendService;
+use \OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
use \OCA\Files_External\Lib\Auth\Password\Password;
class DAV extends Backend {
+ use LegacyDependencyCheckPolyfill;
+
public function __construct(IL10N $l, Password $legacyAuth) {
$this
->setIdentifier('dav')
@@ -44,7 +47,6 @@ class DAV extends Backend {
(new DefinitionParameter('secure', $l->t('Secure https://')))
->setType(DefinitionParameter::VALUE_BOOLEAN),
])
- ->setDependencyCheck('\OC\Files\Storage\DAV::checkDependencies')
->addAuthScheme(AuthMechanism::SCHEME_PASSWORD)
->setLegacyAuthMechanism($legacyAuth)
;
diff --git a/apps/files_external/lib/backend/dropbox.php b/apps/files_external/lib/backend/dropbox.php
index bfd2e4cddc4..3e595cb0a9c 100644
--- a/apps/files_external/lib/backend/dropbox.php
+++ b/apps/files_external/lib/backend/dropbox.php
@@ -26,10 +26,14 @@ use \OCA\Files_External\Lib\Backend\Backend;
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Lib\Auth\AuthMechanism;
use \OCA\Files_External\Service\BackendService;
+use \OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
+
use \OCA\Files_External\Lib\Auth\OAuth1\OAuth1;
class Dropbox extends Backend {
+ use LegacyDependencyCheckPolyfill;
+
public function __construct(IL10N $l, OAuth1 $legacyAuth) {
$this
->setIdentifier('dropbox')
@@ -39,7 +43,6 @@ class Dropbox extends Backend {
->addParameters([
// all parameters handled in OAuth1 mechanism
])
- ->setDependencyCheck('\OC\Files\Storage\Dropbox::checkDependencies')
->addAuthScheme(AuthMechanism::SCHEME_OAUTH1)
->setLegacyAuthMechanism($legacyAuth)
;
diff --git a/apps/files_external/lib/backend/ftp.php b/apps/files_external/lib/backend/ftp.php
index df6ca37679e..1caf3a8fcb8 100644
--- a/apps/files_external/lib/backend/ftp.php
+++ b/apps/files_external/lib/backend/ftp.php
@@ -26,11 +26,14 @@ use \OCA\Files_External\Lib\Backend\Backend;
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Lib\Auth\AuthMechanism;
use \OCA\Files_External\Service\BackendService;
+use \OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
use \OCA\Files_External\Lib\Auth\Password\Password;
class FTP extends Backend {
+ use LegacyDependencyCheckPolyfill;
+
public function __construct(IL10N $l, Password $legacyAuth) {
$this
->setIdentifier('ftp')
@@ -44,7 +47,6 @@ class FTP extends Backend {
(new DefinitionParameter('secure', $l->t('Secure ftps://')))
->setType(DefinitionParameter::VALUE_BOOLEAN),
])
- ->setDependencyCheck('\OC\Files\Storage\FTP::checkDependencies')
->addAuthScheme(AuthMechanism::SCHEME_PASSWORD)
->setLegacyAuthMechanism($legacyAuth)
;
diff --git a/apps/files_external/lib/backend/google.php b/apps/files_external/lib/backend/google.php
index b46b2f653a6..bc0b52c464b 100644
--- a/apps/files_external/lib/backend/google.php
+++ b/apps/files_external/lib/backend/google.php
@@ -26,10 +26,14 @@ use \OCA\Files_External\Lib\Backend\Backend;
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Lib\Auth\AuthMechanism;
use \OCA\Files_External\Service\BackendService;
+use \OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
+
use \OCA\Files_External\Lib\Auth\OAuth2\OAuth2;
class Google extends Backend {
+ use LegacyDependencyCheckPolyfill;
+
public function __construct(IL10N $l, OAuth2 $legacyAuth) {
$this
->setIdentifier('googledrive')
@@ -39,7 +43,6 @@ class Google extends Backend {
->addParameters([
// all parameters handled in OAuth2 mechanism
])
- ->setDependencyCheck('\OC\Files\Storage\Google::checkDependencies')
->addAuthScheme(AuthMechanism::SCHEME_OAUTH2)
->setLegacyAuthMechanism($legacyAuth)
;
diff --git a/apps/files_external/lib/backend/legacybackend.php b/apps/files_external/lib/backend/legacybackend.php
index 0f60c2caa47..83a5b45940d 100644
--- a/apps/files_external/lib/backend/legacybackend.php
+++ b/apps/files_external/lib/backend/legacybackend.php
@@ -24,12 +24,21 @@ namespace OCA\Files_External\Lib\Backend;
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Lib\Backend\Backend;
use \OCA\Files_External\Lib\Auth\Builtin;
+use \OCA\Files_External\Lib\MissingDependency;
+use \OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
/**
* Legacy compatibility for OC_Mount_Config::registerBackend()
*/
class LegacyBackend extends Backend {
+ use LegacyDependencyCheckPolyfill {
+ LegacyDependencyCheckPolyfill::checkDependencies as doCheckDependencies;
+ }
+
+ /** @var bool */
+ protected $hasDependencies = false;
+
/**
* @param string $class
* @param array $definition
@@ -78,8 +87,18 @@ class LegacyBackend extends Backend {
$this->setCustomJs($definition['custom']);
}
if (isset($definition['has_dependencies']) && $definition['has_dependencies']) {
- $this->setDependencyCheck($class . '::checkDependencies');
+ $this->hasDependencies = true;
+ }
+ }
+
+ /**
+ * @return MissingDependency[]
+ */
+ public function checkDependencies() {
+ if ($this->hasDependencies) {
+ return $this->doCheckDependencies();
}
+ return [];
}
}
diff --git a/apps/files_external/lib/backend/smb.php b/apps/files_external/lib/backend/smb.php
index 3d950a80c31..350eca1de34 100644
--- a/apps/files_external/lib/backend/smb.php
+++ b/apps/files_external/lib/backend/smb.php
@@ -26,11 +26,14 @@ use \OCA\Files_External\Lib\Backend\Backend;
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Lib\Auth\AuthMechanism;
use \OCA\Files_External\Service\BackendService;
+use \OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
use \OCA\Files_External\Lib\Auth\Password\Password;
class SMB extends Backend {
+ use LegacyDependencyCheckPolyfill;
+
public function __construct(IL10N $l, Password $legacyAuth) {
$this
->setIdentifier('smb')
@@ -43,7 +46,6 @@ class SMB extends Backend {
(new DefinitionParameter('root', $l->t('Remote subfolder')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
])
- ->setDependencyCheck('\OC\Files\Storage\SMB::checkDependencies')
->addAuthScheme(AuthMechanism::SCHEME_PASSWORD)
->setLegacyAuthMechanism($legacyAuth)
;
diff --git a/apps/files_external/lib/config/configadapter.php b/apps/files_external/lib/config/configadapter.php
index a15d9e06a5f..a255a7b3d25 100644
--- a/apps/files_external/lib/config/configadapter.php
+++ b/apps/files_external/lib/config/configadapter.php
@@ -74,6 +74,9 @@ class ConfigAdapter implements IMountProvider {
$objectStore = $storage->getBackendOption('objectstore');
if ($objectStore) {
$objectClass = $objectStore['class'];
+ if (!is_subclass_of($objectClass, '\OCP\Files\ObjectStore\IObjectStore')) {
+ throw new \InvalidArgumentException('Invalid object store');
+ }
$storage->setBackendOption('objectstore', new $objectClass($objectStore));
}
diff --git a/apps/files_external/lib/dependencytrait.php b/apps/files_external/lib/dependencytrait.php
index 116421eab14..f0d6d6080e5 100644
--- a/apps/files_external/lib/dependencytrait.php
+++ b/apps/files_external/lib/dependencytrait.php
@@ -28,58 +28,13 @@ use \OCA\Files_External\Lib\MissingDependency;
*/
trait DependencyTrait {
- /** @var callable|null dependency check */
- private $dependencyCheck = null;
-
- /**
- * @return bool
- */
- public function hasDependencies() {
- return !is_null($this->dependencyCheck);
- }
-
- /**
- * @param callable $dependencyCheck
- * @return self
- */
- public function setDependencyCheck(callable $dependencyCheck) {
- $this->dependencyCheck = $dependencyCheck;
- return $this;
- }
-
/**
* Check if object is valid for use
*
* @return MissingDependency[] Unsatisfied dependencies
*/
public function checkDependencies() {
- $ret = [];
-
- if ($this->hasDependencies()) {
- $result = call_user_func($this->dependencyCheck);
- if ($result !== true) {
- if (!is_array($result)) {
- $result = [$result];
- }
- foreach ($result as $key => $value) {
- if (!($value instanceof MissingDependency)) {
- $module = null;
- $message = null;
- if (is_numeric($key)) {
- $module = $value;
- } else {
- $module = $key;
- $message = $value;
- }
- $value = new MissingDependency($module, $this);
- $value->setMessage($message);
- }
- $ret[] = $value;
- }
- }
- }
-
- return $ret;
+ return []; // no dependencies by default
}
}
diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php
index e29b1036244..94f954178c0 100644
--- a/apps/files_external/lib/google.php
+++ b/apps/files_external/lib/google.php
@@ -248,8 +248,6 @@ class Google extends \OC\Files\Storage\Common {
}
public function opendir($path) {
- // Remove leading and trailing slashes
- $path = trim($path, '/');
$folder = $this->getDriveFile($path);
if ($folder) {
$files = array();
diff --git a/apps/files_external/lib/legacydependencycheckpolyfill.php b/apps/files_external/lib/legacydependencycheckpolyfill.php
new file mode 100644
index 00000000000..7bb137fb3e1
--- /dev/null
+++ b/apps/files_external/lib/legacydependencycheckpolyfill.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * @author Robin McCorkell <rmccorkell@owncloud.com>
+ *
+ * @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 <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Files_External\Lib;
+
+use \OCA\Files_External\Lib\MissingDependency;
+
+/**
+ * Polyfill for checking dependencies using legacy Storage::checkDependencies()
+ */
+trait LegacyDependencyCheckPolyfill {
+
+ /**
+ * @return string
+ */
+ abstract public function getStorageClass();
+
+ /**
+ * Check if object is valid for use
+ *
+ * @return MissingDependency[] Unsatisfied dependencies
+ */
+ public function checkDependencies() {
+ $ret = [];
+
+ $result = call_user_func([$this->getStorageClass(), 'checkDependencies']);
+ if ($result !== true) {
+ if (!is_array($result)) {
+ $result = [$result];
+ }
+ foreach ($result as $key => $value) {
+ if (!($value instanceof MissingDependency)) {
+ $module = null;
+ $message = null;
+ if (is_numeric($key)) {
+ $module = $value;
+ } else {
+ $module = $key;
+ $message = $value;
+ }
+ $value = new MissingDependency($module, $this);
+ $value->setMessage($message);
+ }
+ $ret[] = $value;
+ }
+ }
+
+ return $ret;
+ }
+
+}
+
diff --git a/apps/files_external/service/storagesservice.php b/apps/files_external/service/storagesservice.php
index 947e544d88f..703f277d84e 100644
--- a/apps/files_external/service/storagesservice.php
+++ b/apps/files_external/service/storagesservice.php
@@ -172,7 +172,7 @@ abstract class StoragesService {
// the root mount point is in the format "/$user/files/the/mount/point"
// we remove the "/$user/files" prefix
- $parts = explode('/', trim($rootMountPath, '/'), 3);
+ $parts = explode('/', ltrim($rootMountPath, '/'), 3);
if (count($parts) < 3) {
// something went wrong, skip
\OCP\Util::writeLog(
@@ -183,7 +183,7 @@ abstract class StoragesService {
continue;
}
- $relativeMountPath = $parts[2];
+ $relativeMountPath = rtrim($parts[2], '/');
// note: we cannot do this after the loop because the decrypted config
// options might be needed for the config hash
diff --git a/apps/files_external/tests/backend/legacybackendtest.php b/apps/files_external/tests/backend/legacybackendtest.php
index 44cb16a4986..d57810de29b 100644
--- a/apps/files_external/tests/backend/legacybackendtest.php
+++ b/apps/files_external/tests/backend/legacybackendtest.php
@@ -23,15 +23,25 @@ namespace OCA\Files_External\Tests\Backend;
use \OCA\Files_External\Lib\Backend\LegacyBackend;
use \OCA\Files_External\Lib\DefinitionParameter;
+use \OCA\Files_External\Lib\MissingDependency;
class LegacyBackendTest extends \Test\TestCase {
+ /**
+ * @return MissingDependency[]
+ */
+ public static function checkDependencies() {
+ return [
+ (new MissingDependency('abc'))->setMessage('foobar')
+ ];
+ }
+
public function testConstructor() {
$auth = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\Builtin')
->disableOriginalConstructor()
->getMock();
- $class = '\OC\Files\Storage\SMB';
+ $class = '\OCA\Files_External\Tests\Backend\LegacyBackendTest';
$definition = [
'configuration' => [
'textfield' => 'Text field',
@@ -49,14 +59,18 @@ class LegacyBackendTest extends \Test\TestCase {
$backend = new LegacyBackend($class, $definition, $auth);
- $this->assertEquals('\OC\Files\Storage\SMB', $backend->getStorageClass());
+ $this->assertEquals('\OCA\Files_External\Tests\Backend\LegacyBackendTest', $backend->getStorageClass());
$this->assertEquals('Backend text', $backend->getText());
$this->assertEquals(123, $backend->getPriority());
$this->assertEquals('foo/bar.js', $backend->getCustomJs());
- $this->assertEquals(true, $backend->hasDependencies());
$this->assertArrayHasKey('builtin', $backend->getAuthSchemes());
$this->assertEquals($auth, $backend->getLegacyAuthMechanism());
+ $dependencies = $backend->checkDependencies();
+ $this->assertCount(1, $dependencies);
+ $this->assertEquals('abc', $dependencies[0]->getDependency());
+ $this->assertEquals('foobar', $dependencies[0]->getMessage());
+
$parameters = $backend->getParameters();
$this->assertEquals('Text field', $parameters['textfield']->getText());
$this->assertEquals(DefinitionParameter::VALUE_TEXT, $parameters['textfield']->getType());
@@ -78,4 +92,22 @@ class LegacyBackendTest extends \Test\TestCase {
$this->assertEquals(DefinitionParameter::FLAG_OPTIONAL, $parameters['optionalpassword']->getFlags());
}
+ public function testNoDependencies() {
+ $auth = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\Builtin')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $class = '\OCA\Files_External\Tests\Backend\LegacyBackendTest';
+ $definition = [
+ 'configuration' => [
+ ],
+ 'backend' => 'Backend text',
+ ];
+
+ $backend = new LegacyBackend($class, $definition, $auth);
+
+ $dependencies = $backend->checkDependencies();
+ $this->assertCount(0, $dependencies);
+ }
+
}
diff --git a/apps/files_external/tests/dependencytraittest.php b/apps/files_external/tests/legacydependencycheckpolyfilltest.php
index 5706d97053d..49d825d77aa 100644
--- a/apps/files_external/tests/dependencytraittest.php
+++ b/apps/files_external/tests/legacydependencycheckpolyfilltest.php
@@ -23,16 +23,23 @@ namespace OCA\Files_External\Tests;
use \OCA\Files_External\Lib\MissingDependency;
-class DependencyTraitTest extends \Test\TestCase {
+class LegacyDependencyCheckPolyfillTest extends \Test\TestCase {
+
+ /**
+ * @return MissingDependency[]
+ */
+ public static function checkDependencies() {
+ return [
+ (new MissingDependency('dependency'))->setMessage('missing dependency'),
+ (new MissingDependency('program'))->setMessage('cannot find program'),
+ ];
+ }
public function testCheckDependencies() {
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\DependencyTrait');
- $trait->setDependencyCheck(function() {
- return [
- (new MissingDependency('dependency'))->setMessage('missing dependency'),
- (new MissingDependency('program'))->setMessage('cannot find program'),
- ];
- });
+ $trait = $this->getMockForTrait('\OCA\Files_External\Lib\LegacyDependencyCheckPolyfill');
+ $trait->expects($this->once())
+ ->method('getStorageClass')
+ ->willReturn('\OCA\Files_External\Tests\LegacyDependencyCheckPolyfillTest');
$dependencies = $trait->checkDependencies();
$this->assertCount(2, $dependencies);
diff --git a/apps/files_external/tests/service/globalstoragesservicetest.php b/apps/files_external/tests/service/globalstoragesservicetest.php
index 2bc480ca312..94c34c221fc 100644
--- a/apps/files_external/tests/service/globalstoragesservicetest.php
+++ b/apps/files_external/tests/service/globalstoragesservicetest.php
@@ -914,4 +914,32 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
$this->assertEquals('identifier:\Auth\Mechanism', $storage2->getAuthMechanism()->getIdentifier());
}
+ public function testReadEmptyMountPoint() {
+ $configFile = $this->dataDir . '/mount.json';
+
+ $json = [
+ 'user' => [
+ 'user1' => [
+ '/$user/files/' => [
+ 'backend' => 'identifier:\OCA\Files_External\Lib\Backend\SFTP',
+ 'authMechanism' => 'identifier:\Auth\Mechanism',
+ 'options' => [],
+ 'mountOptions' => [],
+ ],
+ ]
+ ]
+ ];
+
+ file_put_contents($configFile, json_encode($json));
+
+ $allStorages = $this->service->getAllStorages();
+
+ $this->assertCount(1, $allStorages);
+
+ $storage1 = $allStorages[1];
+
+ $this->assertEquals('/', $storage1->getMountPoint());
+ }
+
+
}
diff --git a/apps/files_external/tests/service/userglobalstoragesservicetest.php b/apps/files_external/tests/service/userglobalstoragesservicetest.php
index 49a02453840..b9e2c08c932 100644
--- a/apps/files_external/tests/service/userglobalstoragesservicetest.php
+++ b/apps/files_external/tests/service/userglobalstoragesservicetest.php
@@ -212,4 +212,9 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
$this->assertTrue(true);
}
+ public function testReadEmptyMountPoint() {
+ // we don't test this here
+ $this->assertTrue(true);
+ }
+
}