summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/comments/l10n/sv.js1
-rw-r--r--apps/comments/l10n/sv.json1
-rw-r--r--apps/files/ajax/list.php6
-rw-r--r--apps/files_external/l10n/de.js1
-rw-r--r--apps/files_external/l10n/de.json1
-rw-r--r--apps/files_external/l10n/de_DE.js1
-rw-r--r--apps/files_external/l10n/de_DE.json1
-rw-r--r--apps/files_external/l10n/en_GB.js1
-rw-r--r--apps/files_external/l10n/en_GB.json1
-rw-r--r--apps/files_external/l10n/es.js1
-rw-r--r--apps/files_external/l10n/es.json1
-rw-r--r--apps/files_external/l10n/es_MX.js1
-rw-r--r--apps/files_external/l10n/es_MX.json1
-rw-r--r--apps/files_external/l10n/fr.js1
-rw-r--r--apps/files_external/l10n/fr.json1
-rw-r--r--apps/files_external/l10n/nl.js1
-rw-r--r--apps/files_external/l10n/nl.json1
-rw-r--r--apps/files_external/l10n/pt_BR.js1
-rw-r--r--apps/files_external/l10n/pt_BR.json1
-rw-r--r--apps/files_external/lib/Lib/Storage/AmazonS3.php24
-rw-r--r--apps/files_external/lib/config.php2
-rw-r--r--apps/files_sharing/public.php9
-rw-r--r--apps/theming/l10n/de.js1
-rw-r--r--apps/theming/l10n/de.json1
-rw-r--r--apps/theming/l10n/de_DE.js1
-rw-r--r--apps/theming/l10n/de_DE.json1
-rw-r--r--apps/theming/l10n/en_GB.js1
-rw-r--r--apps/theming/l10n/en_GB.json1
-rw-r--r--apps/theming/l10n/es.js1
-rw-r--r--apps/theming/l10n/es.json1
-rw-r--r--apps/theming/l10n/es_MX.js1
-rw-r--r--apps/theming/l10n/es_MX.json1
-rw-r--r--apps/theming/l10n/fr.js1
-rw-r--r--apps/theming/l10n/fr.json1
-rw-r--r--apps/theming/l10n/nl.js1
-rw-r--r--apps/theming/l10n/nl.json1
-rw-r--r--apps/theming/l10n/pt_BR.js1
-rw-r--r--apps/theming/l10n/pt_BR.json1
-rw-r--r--apps/theming/l10n/sv.js1
-rw-r--r--apps/theming/l10n/sv.json1
-rw-r--r--apps/theming/l10n/zh_TW.js1
-rw-r--r--apps/theming/l10n/zh_TW.json1
-rw-r--r--apps/updatenotification/l10n/en_GB.js8
-rw-r--r--apps/updatenotification/l10n/en_GB.json8
-rw-r--r--apps/updatenotification/l10n/es_MX.js8
-rw-r--r--apps/updatenotification/l10n/es_MX.json8
-rw-r--r--apps/updatenotification/l10n/nl.js6
-rw-r--r--apps/updatenotification/l10n/nl.json6
-rw-r--r--apps/updatenotification/l10n/sv.js2
-rw-r--r--apps/updatenotification/l10n/sv.json2
-rw-r--r--apps/user_ldap/l10n/de.js1
-rw-r--r--apps/user_ldap/l10n/de.json1
-rw-r--r--apps/user_ldap/l10n/de_DE.js1
-rw-r--r--apps/user_ldap/l10n/de_DE.json1
-rw-r--r--apps/user_ldap/l10n/en_GB.js1
-rw-r--r--apps/user_ldap/l10n/en_GB.json1
-rw-r--r--apps/user_ldap/l10n/es.js1
-rw-r--r--apps/user_ldap/l10n/es.json1
-rw-r--r--apps/user_ldap/l10n/es_MX.js1
-rw-r--r--apps/user_ldap/l10n/es_MX.json1
-rw-r--r--apps/user_ldap/l10n/nl.js1
-rw-r--r--apps/user_ldap/l10n/nl.json1
-rw-r--r--apps/user_ldap/l10n/pt_BR.js1
-rw-r--r--apps/user_ldap/l10n/pt_BR.json1
-rw-r--r--apps/user_ldap/lib/Helper.php2
-rw-r--r--core/l10n/en_GB.js1
-rw-r--r--core/l10n/en_GB.json1
-rw-r--r--core/l10n/es.js2
-rw-r--r--core/l10n/es.json2
-rw-r--r--core/l10n/es_MX.js1
-rw-r--r--core/l10n/es_MX.json1
-rw-r--r--core/l10n/zh_CN.js2
-rw-r--r--core/l10n/zh_CN.json2
-rw-r--r--lib/base.php2
-rw-r--r--lib/composer/composer/autoload_classmap.php2
-rw-r--r--lib/composer/composer/autoload_static.php2
-rw-r--r--lib/l10n/nl.js1
-rw-r--r--lib/l10n/nl.json1
-rw-r--r--lib/private/App/CodeChecker/DeprecationCheck.php1
-rw-r--r--lib/private/AppHelper.php48
-rw-r--r--lib/private/Files/ObjectStore/SwiftFactory.php7
-rw-r--r--lib/private/Server.php10
-rw-r--r--lib/private/Tags.php17
-rw-r--r--lib/private/legacy/api.php277
-rw-r--r--lib/private/legacy/response.php124
-rw-r--r--lib/private/legacy/util.php23
-rw-r--r--lib/public/DB.php54
-rw-r--r--lib/public/IHelper.php50
-rw-r--r--lib/public/IServerContainer.php10
-rw-r--r--lib/public/Response.php74
-rw-r--r--lib/public/Util.php101
-rw-r--r--settings/Controller/ChangePasswordController.php10
-rw-r--r--settings/Controller/UsersController.php10
-rw-r--r--settings/l10n/en_GB.js2
-rw-r--r--settings/l10n/en_GB.json2
-rw-r--r--settings/l10n/es_MX.js2
-rw-r--r--settings/l10n/es_MX.json2
-rw-r--r--settings/l10n/nl.js5
-rw-r--r--settings/l10n/nl.json5
-rw-r--r--settings/templates/settings/admin/server.php4
-rw-r--r--tests/lib/APITest.php115
-rw-r--r--tests/lib/DB/ConnectionTest.php138
-rw-r--r--tests/lib/DB/LegacyDBTest.php134
-rw-r--r--tests/lib/DB/MDB2SchemaReaderTest.php2
-rw-r--r--tests/lib/DB/testschema.xml1
-rw-r--r--tests/lib/ServerTest.php2
-rw-r--r--tests/lib/UtilTest.php64
107 files changed, 332 insertions, 1125 deletions
diff --git a/apps/comments/l10n/sv.js b/apps/comments/l10n/sv.js
index 3dca823f25a..60313a2284e 100644
--- a/apps/comments/l10n/sv.js
+++ b/apps/comments/l10n/sv.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"More comments …" : "Fler kommentarer ...",
"Save" : "Spara",
"Allowed characters {count} of {max}" : "Antal tillåtna tecken, {count} av {max}",
+ "Error occurred while retrieving comment with ID {id}" : "Fel uppstod när kommentaren med ID {id} hämtades",
"Error occurred while updating comment with id {id}" : "Fel inträffade vid uppdatering av kommentar med id {id}",
"Error occurred while posting comment" : "Fel inträffade vid publicering av kommentar",
"_%n unread comment_::_%n unread comments_" : ["%n oläst kommentar","%n olästa kommentarer"],
diff --git a/apps/comments/l10n/sv.json b/apps/comments/l10n/sv.json
index 3730134db8f..936128bbed3 100644
--- a/apps/comments/l10n/sv.json
+++ b/apps/comments/l10n/sv.json
@@ -10,6 +10,7 @@
"More comments …" : "Fler kommentarer ...",
"Save" : "Spara",
"Allowed characters {count} of {max}" : "Antal tillåtna tecken, {count} av {max}",
+ "Error occurred while retrieving comment with ID {id}" : "Fel uppstod när kommentaren med ID {id} hämtades",
"Error occurred while updating comment with id {id}" : "Fel inträffade vid uppdatering av kommentar med id {id}",
"Error occurred while posting comment" : "Fel inträffade vid publicering av kommentar",
"_%n unread comment_::_%n unread comments_" : ["%n oläst kommentar","%n olästa kommentarer"],
diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php
index 617ad18ac14..de3c7ccce5e 100644
--- a/apps/files/ajax/list.php
+++ b/apps/files/ajax/list.php
@@ -81,7 +81,7 @@ try {
OCP\JSON::success(array('data' => $data));
} catch (\OCP\Files\StorageNotAvailableException $e) {
- \OCP\Util::logException('files', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files']);
OCP\JSON::error([
'data' => [
'exception' => StorageNotAvailableException::class,
@@ -89,7 +89,7 @@ try {
]
]);
} catch (\OCP\Files\StorageInvalidException $e) {
- \OCP\Util::logException('files', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files']);
OCP\JSON::error(array(
'data' => array(
'exception' => StorageInvalidException::class,
@@ -97,7 +97,7 @@ try {
)
));
} catch (\Exception $e) {
- \OCP\Util::logException('files', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files']);
OCP\JSON::error(array(
'data' => array(
'exception' => \Exception::class,
diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js
index 57199dec848..6fafc3e5489 100644
--- a/apps/files_external/l10n/de.js
+++ b/apps/files_external/l10n/de.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(group)",
"Compatibility with Mac NFD encoding (slow)" : "Kompatibilität mit MAC NFD-Kodierung (langsam)",
"Admin defined" : "Vom Administrator festgelegt",
+ "Are you sure you want to delete this external storage?" : "Möchtest du wirklich diesen externen Speicher löschen?",
"Delete storage?" : "Speicher löschen?",
"Saved" : "Gespeichert",
"Saving..." : "Speichere…",
diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json
index efa981edb61..89f089605b9 100644
--- a/apps/files_external/l10n/de.json
+++ b/apps/files_external/l10n/de.json
@@ -12,6 +12,7 @@
"(group)" : "(group)",
"Compatibility with Mac NFD encoding (slow)" : "Kompatibilität mit MAC NFD-Kodierung (langsam)",
"Admin defined" : "Vom Administrator festgelegt",
+ "Are you sure you want to delete this external storage?" : "Möchtest du wirklich diesen externen Speicher löschen?",
"Delete storage?" : "Speicher löschen?",
"Saved" : "Gespeichert",
"Saving..." : "Speichere…",
diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js
index e91b59d9041..ca2d37523b2 100644
--- a/apps/files_external/l10n/de_DE.js
+++ b/apps/files_external/l10n/de_DE.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(group)",
"Compatibility with Mac NFD encoding (slow)" : "Kompatibilität mit MAC NFD-Kodierung (langsam)",
"Admin defined" : "Vom Administrator festgelegt",
+ "Are you sure you want to delete this external storage?" : "Möchten Sie wirklich diesen externen Speicher löschen?",
"Delete storage?" : "Speicher löschen?",
"Saved" : "Gespeichert",
"Saving..." : "Speichere …",
diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json
index 8894431497a..4ab53e25cbc 100644
--- a/apps/files_external/l10n/de_DE.json
+++ b/apps/files_external/l10n/de_DE.json
@@ -12,6 +12,7 @@
"(group)" : "(group)",
"Compatibility with Mac NFD encoding (slow)" : "Kompatibilität mit MAC NFD-Kodierung (langsam)",
"Admin defined" : "Vom Administrator festgelegt",
+ "Are you sure you want to delete this external storage?" : "Möchten Sie wirklich diesen externen Speicher löschen?",
"Delete storage?" : "Speicher löschen?",
"Saved" : "Gespeichert",
"Saving..." : "Speichere …",
diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js
index 1fc044abcba..cc4b1000d6d 100644
--- a/apps/files_external/l10n/en_GB.js
+++ b/apps/files_external/l10n/en_GB.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(group)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibility with Mac NFD encoding (slow)",
"Admin defined" : "Admin defined",
+ "Are you sure you want to delete this external storage?" : "Are you sure you want to delete this external storage?",
"Delete storage?" : "Delete storage?",
"Saved" : "Saved",
"Saving..." : "Saving...",
diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json
index 9a56e4264a4..7ff4fcb7b55 100644
--- a/apps/files_external/l10n/en_GB.json
+++ b/apps/files_external/l10n/en_GB.json
@@ -12,6 +12,7 @@
"(group)" : "(group)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibility with Mac NFD encoding (slow)",
"Admin defined" : "Admin defined",
+ "Are you sure you want to delete this external storage?" : "Are you sure you want to delete this external storage?",
"Delete storage?" : "Delete storage?",
"Saved" : "Saved",
"Saving..." : "Saving...",
diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js
index 59cbc11d476..f607c38b6d7 100644
--- a/apps/files_external/l10n/es.js
+++ b/apps/files_external/l10n/es.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(grupo)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac MFD (lento)",
"Admin defined" : "Admin definido",
+ "Are you sure you want to delete this external storage?" : "¿Estás seguro de querer eliminar el almacenamiento externo?",
"Delete storage?" : "¿Borrar almacenamiento?",
"Saved" : "Guardado",
"Saving..." : "Guardando...",
diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json
index 6f96a622738..90800745fee 100644
--- a/apps/files_external/l10n/es.json
+++ b/apps/files_external/l10n/es.json
@@ -12,6 +12,7 @@
"(group)" : "(grupo)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac MFD (lento)",
"Admin defined" : "Admin definido",
+ "Are you sure you want to delete this external storage?" : "¿Estás seguro de querer eliminar el almacenamiento externo?",
"Delete storage?" : "¿Borrar almacenamiento?",
"Saved" : "Guardado",
"Saving..." : "Guardando...",
diff --git a/apps/files_external/l10n/es_MX.js b/apps/files_external/l10n/es_MX.js
index c0f1156e7f6..3a5084dc55d 100644
--- a/apps/files_external/l10n/es_MX.js
+++ b/apps/files_external/l10n/es_MX.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(grupo)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)",
"Admin defined" : "Administrador definido",
+ "Are you sure you want to delete this external storage?" : "¿Estás seguro que quieres borrar este almacenamiento externo?",
"Delete storage?" : "¿Borrar almacenamiento?",
"Saved" : "Guardado",
"Saving..." : "Guardando...",
diff --git a/apps/files_external/l10n/es_MX.json b/apps/files_external/l10n/es_MX.json
index 9030207dc1a..084edf9a09b 100644
--- a/apps/files_external/l10n/es_MX.json
+++ b/apps/files_external/l10n/es_MX.json
@@ -12,6 +12,7 @@
"(group)" : "(grupo)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)",
"Admin defined" : "Administrador definido",
+ "Are you sure you want to delete this external storage?" : "¿Estás seguro que quieres borrar este almacenamiento externo?",
"Delete storage?" : "¿Borrar almacenamiento?",
"Saved" : "Guardado",
"Saving..." : "Guardando...",
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 83f39b55814..7533b976a14 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(groupe)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilité avec l'encodage Mac NFD (lent)",
"Admin defined" : "Défini par l'administrateur",
+ "Are you sure you want to delete this external storage?" : "Êtes-vous sûr de vouloir supprimer ce stockage externe ?",
"Delete storage?" : "Supprimer ce support de stockage ?",
"Saved" : "Sauvegardé",
"Saving..." : "Enregistrement...",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index 9aba9146774..73b8bc28c5b 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -12,6 +12,7 @@
"(group)" : "(groupe)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilité avec l'encodage Mac NFD (lent)",
"Admin defined" : "Défini par l'administrateur",
+ "Are you sure you want to delete this external storage?" : "Êtes-vous sûr de vouloir supprimer ce stockage externe ?",
"Delete storage?" : "Supprimer ce support de stockage ?",
"Saved" : "Sauvegardé",
"Saving..." : "Enregistrement...",
diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js
index 1dc2f2315e7..e68577934d6 100644
--- a/apps/files_external/l10n/nl.js
+++ b/apps/files_external/l10n/nl.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(groep)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)",
"Admin defined" : "Beheerder gedefinieerd",
+ "Are you sure you want to delete this external storage?" : "Weet je zeker dat je deze externe opslag wilt verwijderen",
"Delete storage?" : "Opslag verwijderen?",
"Saved" : "Bewaard",
"Saving..." : "Bewaren...",
diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json
index 717058cba7f..ca96e416483 100644
--- a/apps/files_external/l10n/nl.json
+++ b/apps/files_external/l10n/nl.json
@@ -12,6 +12,7 @@
"(group)" : "(groep)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)",
"Admin defined" : "Beheerder gedefinieerd",
+ "Are you sure you want to delete this external storage?" : "Weet je zeker dat je deze externe opslag wilt verwijderen",
"Delete storage?" : "Opslag verwijderen?",
"Saved" : "Bewaard",
"Saving..." : "Bewaren...",
diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js
index 87478ddfe15..f1624a0f9ea 100644
--- a/apps/files_external/l10n/pt_BR.js
+++ b/apps/files_external/l10n/pt_BR.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(grupo)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidade com a codificação Mac NFD (lento)",
"Admin defined" : "Definido pelo administrador",
+ "Are you sure you want to delete this external storage?" : "Quer realmente excluir este armazenamento externo?",
"Delete storage?" : "Excluir armazenamento?",
"Saved" : "Salvo",
"Saving..." : "Salvando...",
diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json
index 7f84859f710..80d6ba18e09 100644
--- a/apps/files_external/l10n/pt_BR.json
+++ b/apps/files_external/l10n/pt_BR.json
@@ -12,6 +12,7 @@
"(group)" : "(grupo)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidade com a codificação Mac NFD (lento)",
"Admin defined" : "Definido pelo administrador",
+ "Are you sure you want to delete this external storage?" : "Quer realmente excluir este armazenamento externo?",
"Delete storage?" : "Excluir armazenamento?",
"Saved" : "Salvo",
"Saving..." : "Salvando...",
diff --git a/apps/files_external/lib/Lib/Storage/AmazonS3.php b/apps/files_external/lib/Lib/Storage/AmazonS3.php
index 459f9b80e12..553e5316333 100644
--- a/apps/files_external/lib/Lib/Storage/AmazonS3.php
+++ b/apps/files_external/lib/Lib/Storage/AmazonS3.php
@@ -194,7 +194,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
));
$this->testTimeout();
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
@@ -261,7 +261,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
// we reached the end when the list is no longer truncated
} while ($objects['IsTruncated']);
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
return true;
@@ -305,7 +305,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return IteratorDirectory::wrap($files);
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
}
@@ -333,7 +333,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return $stat;
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
}
@@ -343,7 +343,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
try {
return $this->isRoot($path) || $this->headObject($path . '/');
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
}
@@ -363,7 +363,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return 'dir';
}
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
@@ -389,7 +389,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
$this->deleteObject($path);
$this->invalidateCache($path);
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
@@ -405,7 +405,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
try {
return $this->readObject($path);
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
case 'w':
@@ -483,7 +483,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
$this->testTimeout();
}
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
@@ -504,7 +504,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
));
$this->testTimeout();
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
} else {
@@ -518,7 +518,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
));
$this->testTimeout();
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
@@ -591,7 +591,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
unlink($tmpFile);
return true;
} catch (S3Exception $e) {
- \OCP\Util::logException('files_external', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'files_external']);
return false;
}
}
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 5238eaa42b2..a1e7d12bcae 100644
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -247,7 +247,7 @@ class OC_Mount_Config {
throw $e;
}
} catch (Exception $exception) {
- \OCP\Util::logException('files_external', $exception);
+ \OC::$server->getLogger()->logException($exception, ['app' => 'files_external']);
throw $exception;
}
}
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index 0aae9e95800..0ca7e8f245e 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -28,7 +28,14 @@ $token = isset($_GET['t']) ? $_GET['t'] : '';
$route = isset($_GET['download']) ? 'files_sharing.sharecontroller.downloadShare' : 'files_sharing.sharecontroller.showShare';
if($token !== '') {
- OC_Response::redirect($urlGenerator->linkToRoute($route, array('token' => $token)));
+ $protocol = \OC::$server->getRequest()->getHttpProtocol();
+ if ($protocol == 'HTTP/1.0') {
+ $status = '302 Found';
+ } else {
+ $status = '307 Temporary Redirect';
+ }
+ header($protocol.' ' . $status);
+ header('Location: ' . $urlGenerator->linkToRoute($route, array('token' => $token)));
} else {
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
diff --git a/apps/theming/l10n/de.js b/apps/theming/l10n/de.js
index 2fee6966f48..6156ee16f5e 100644
--- a/apps/theming/l10n/de.js
+++ b/apps/theming/l10n/de.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE - Vorgabe erlaubt, die im HTML-Formular spezifiziert ist.",
+ "The file was only partially uploaded" : "Die Datei konnte nur teilweise hochgeladen werden",
"No file was uploaded" : "Es wurde keine Datei hochgeladen",
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.",
diff --git a/apps/theming/l10n/de.json b/apps/theming/l10n/de.json
index 7f6b4352eae..8f25a92be57 100644
--- a/apps/theming/l10n/de.json
+++ b/apps/theming/l10n/de.json
@@ -11,6 +11,7 @@
"There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE - Vorgabe erlaubt, die im HTML-Formular spezifiziert ist.",
+ "The file was only partially uploaded" : "Die Datei konnte nur teilweise hochgeladen werden",
"No file was uploaded" : "Es wurde keine Datei hochgeladen",
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.",
diff --git a/apps/theming/l10n/de_DE.js b/apps/theming/l10n/de_DE.js
index f5cc68856ca..d373fa43adb 100644
--- a/apps/theming/l10n/de_DE.js
+++ b/apps/theming/l10n/de_DE.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist",
+ "The file was only partially uploaded" : "Die Datei konnte nur teilweise hochgeladen werden",
"No file was uploaded" : "Es wurde keine Datei hochgeladen",
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.",
diff --git a/apps/theming/l10n/de_DE.json b/apps/theming/l10n/de_DE.json
index b4f1d3e5627..4e08b49e3a3 100644
--- a/apps/theming/l10n/de_DE.json
+++ b/apps/theming/l10n/de_DE.json
@@ -11,6 +11,7 @@
"There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist",
+ "The file was only partially uploaded" : "Die Datei konnte nur teilweise hochgeladen werden",
"No file was uploaded" : "Es wurde keine Datei hochgeladen",
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.",
diff --git a/apps/theming/l10n/en_GB.js b/apps/theming/l10n/en_GB.js
index 614888712a7..7897fabe841 100644
--- a/apps/theming/l10n/en_GB.js
+++ b/apps/theming/l10n/en_GB.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"There is no error, the file uploaded with success" : "There is no error, the file uploaded with success",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "The uploaded file exceeds the upload_max_filesize directive in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form",
+ "The file was only partially uploaded" : "The file was only partially uploaded",
"No file was uploaded" : "No file was uploaded",
"Missing a temporary folder" : "Missing a temporary folder",
"Failed to write file to disk." : "Failed to write file to disk.",
diff --git a/apps/theming/l10n/en_GB.json b/apps/theming/l10n/en_GB.json
index ba7b9bf09fd..3a366327a9c 100644
--- a/apps/theming/l10n/en_GB.json
+++ b/apps/theming/l10n/en_GB.json
@@ -11,6 +11,7 @@
"There is no error, the file uploaded with success" : "There is no error, the file uploaded with success",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "The uploaded file exceeds the upload_max_filesize directive in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form",
+ "The file was only partially uploaded" : "The file was only partially uploaded",
"No file was uploaded" : "No file was uploaded",
"Missing a temporary folder" : "Missing a temporary folder",
"Failed to write file to disk." : "Failed to write file to disk.",
diff --git a/apps/theming/l10n/es.js b/apps/theming/l10n/es.js
index ebdf840113c..903b74212dd 100644
--- a/apps/theming/l10n/es.js
+++ b/apps/theming/l10n/es.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"There is no error, the file uploaded with success" : "No ha habido errores, el archivo ha subido satisfactoriamente",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo para subir excede la directiva upload_max_filesize en php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo para subir excede la directiva MAX_FILE_SIZE que se especifió en el formulario HTML",
+ "The file was only partially uploaded" : "El archivo se ha subido parcialmente",
"No file was uploaded" : "No se ha subido ningún archivo",
"Missing a temporary folder" : "Falta una carpeta temporal",
"Failed to write file to disk." : "Fallo al escribir el archivo al disco.",
diff --git a/apps/theming/l10n/es.json b/apps/theming/l10n/es.json
index 0946da4f294..50ba609f855 100644
--- a/apps/theming/l10n/es.json
+++ b/apps/theming/l10n/es.json
@@ -11,6 +11,7 @@
"There is no error, the file uploaded with success" : "No ha habido errores, el archivo ha subido satisfactoriamente",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo para subir excede la directiva upload_max_filesize en php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo para subir excede la directiva MAX_FILE_SIZE que se especifió en el formulario HTML",
+ "The file was only partially uploaded" : "El archivo se ha subido parcialmente",
"No file was uploaded" : "No se ha subido ningún archivo",
"Missing a temporary folder" : "Falta una carpeta temporal",
"Failed to write file to disk." : "Fallo al escribir el archivo al disco.",
diff --git a/apps/theming/l10n/es_MX.js b/apps/theming/l10n/es_MX.js
index b0d899b42ce..af20b0f0110 100644
--- a/apps/theming/l10n/es_MX.js
+++ b/apps/theming/l10n/es_MX.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"There is no error, the file uploaded with success" : "No hay errores, el archivo se cargó exitosamente",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
+ "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
"No file was uploaded" : "No se cargó el archivo",
"Missing a temporary folder" : "Falta una carpeta temporal",
"Failed to write file to disk." : "Se presentó una falla al escribir el archivo en el disco. ",
diff --git a/apps/theming/l10n/es_MX.json b/apps/theming/l10n/es_MX.json
index df51d44164a..f46559a1570 100644
--- a/apps/theming/l10n/es_MX.json
+++ b/apps/theming/l10n/es_MX.json
@@ -11,6 +11,7 @@
"There is no error, the file uploaded with success" : "No hay errores, el archivo se cargó exitosamente",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
+ "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
"No file was uploaded" : "No se cargó el archivo",
"Missing a temporary folder" : "Falta una carpeta temporal",
"Failed to write file to disk." : "Se presentó una falla al escribir el archivo en el disco. ",
diff --git a/apps/theming/l10n/fr.js b/apps/theming/l10n/fr.js
index 3cb190be18d..2c7f131d630 100644
--- a/apps/theming/l10n/fr.js
+++ b/apps/theming/l10n/fr.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été téléversé avec succès",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Le fichier téléversé dépasse la valeur upload_max_filesize située dans le fichier php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier téléversé dépasse la valeur MAX_FILE_SIZE spécifiée dans le formulaire HTML",
+ "The file was only partially uploaded" : "Le fichier n'a été que partiellement envoyé",
"No file was uploaded" : "Aucun fichier téléversé",
"Missing a temporary folder" : "Absence de dossier temporaire",
"Failed to write file to disk." : "Erreur d'écriture du fichier sur le disque.",
diff --git a/apps/theming/l10n/fr.json b/apps/theming/l10n/fr.json
index 665284f5f23..77931097aaa 100644
--- a/apps/theming/l10n/fr.json
+++ b/apps/theming/l10n/fr.json
@@ -11,6 +11,7 @@
"There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été téléversé avec succès",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Le fichier téléversé dépasse la valeur upload_max_filesize située dans le fichier php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier téléversé dépasse la valeur MAX_FILE_SIZE spécifiée dans le formulaire HTML",
+ "The file was only partially uploaded" : "Le fichier n'a été que partiellement envoyé",
"No file was uploaded" : "Aucun fichier téléversé",
"Missing a temporary folder" : "Absence de dossier temporaire",
"Failed to write file to disk." : "Erreur d'écriture du fichier sur le disque.",
diff --git a/apps/theming/l10n/nl.js b/apps/theming/l10n/nl.js
index 7c7e6a42621..77f4444e56a 100644
--- a/apps/theming/l10n/nl.js
+++ b/apps/theming/l10n/nl.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"There is no error, the file uploaded with success" : "Er trad geen fout op, het bestand is succesvol geüpload",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Het geüploade bestand overschrijdt de upload_max_filesize richtlijn in php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Het bestand overschrijdt de MAX_FILE_SIZE richtlijn die is opgegeven in het HTML formulier",
+ "The file was only partially uploaded" : "Het bestand is slechts gedeeltelijk geüpload",
"No file was uploaded" : "Er is geen bestand geüpload",
"Missing a temporary folder" : "Er ontbreekt een tijdelijke map",
"Failed to write file to disk." : "Schrijven van het bestand naar schijf mislukte.",
diff --git a/apps/theming/l10n/nl.json b/apps/theming/l10n/nl.json
index aa2bd8ed659..4c5cd64520c 100644
--- a/apps/theming/l10n/nl.json
+++ b/apps/theming/l10n/nl.json
@@ -11,6 +11,7 @@
"There is no error, the file uploaded with success" : "Er trad geen fout op, het bestand is succesvol geüpload",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Het geüploade bestand overschrijdt de upload_max_filesize richtlijn in php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Het bestand overschrijdt de MAX_FILE_SIZE richtlijn die is opgegeven in het HTML formulier",
+ "The file was only partially uploaded" : "Het bestand is slechts gedeeltelijk geüpload",
"No file was uploaded" : "Er is geen bestand geüpload",
"Missing a temporary folder" : "Er ontbreekt een tijdelijke map",
"Failed to write file to disk." : "Schrijven van het bestand naar schijf mislukte.",
diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js
index 4ad346079a3..f51f0d31d3a 100644
--- a/apps/theming/l10n/pt_BR.js
+++ b/apps/theming/l10n/pt_BR.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"There is no error, the file uploaded with success" : "Sem erros. Arquivo enviado com sucesso",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O arquivo enviado excede a diretiva upload_max_filesize do php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo enviado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML",
+ "The file was only partially uploaded" : "O aquivo foi parcialmente enviado",
"No file was uploaded" : "Nenhum arquivo foi enviado",
"Missing a temporary folder" : "Falta uma pasta temporária",
"Failed to write file to disk." : "Falha ao escrever no disco.",
diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json
index 18167eac35c..ad840186271 100644
--- a/apps/theming/l10n/pt_BR.json
+++ b/apps/theming/l10n/pt_BR.json
@@ -11,6 +11,7 @@
"There is no error, the file uploaded with success" : "Sem erros. Arquivo enviado com sucesso",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O arquivo enviado excede a diretiva upload_max_filesize do php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo enviado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML",
+ "The file was only partially uploaded" : "O aquivo foi parcialmente enviado",
"No file was uploaded" : "Nenhum arquivo foi enviado",
"Missing a temporary folder" : "Falta uma pasta temporária",
"Failed to write file to disk." : "Falha ao escrever no disco.",
diff --git a/apps/theming/l10n/sv.js b/apps/theming/l10n/sv.js
index af801442ac5..685036c0ad3 100644
--- a/apps/theming/l10n/sv.js
+++ b/apps/theming/l10n/sv.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Saved" : "Sparat",
"Admin" : "Admin",
"a safe home for all your data" : "En säker lagringsplats för all din data",
+ "Name cannot be empty" : "Namn kan inte vara tom",
"The given name is too long" : "Det angivna namnet är för långt",
"The given web address is too long" : "Den angivna adressen är för lång",
"The given slogan is too long" : "Den angivna slogan är för lång",
diff --git a/apps/theming/l10n/sv.json b/apps/theming/l10n/sv.json
index 41d66468db7..0dbcba4a5f5 100644
--- a/apps/theming/l10n/sv.json
+++ b/apps/theming/l10n/sv.json
@@ -3,6 +3,7 @@
"Saved" : "Sparat",
"Admin" : "Admin",
"a safe home for all your data" : "En säker lagringsplats för all din data",
+ "Name cannot be empty" : "Namn kan inte vara tom",
"The given name is too long" : "Det angivna namnet är för långt",
"The given web address is too long" : "Den angivna adressen är för lång",
"The given slogan is too long" : "Den angivna slogan är för lång",
diff --git a/apps/theming/l10n/zh_TW.js b/apps/theming/l10n/zh_TW.js
index 5472f1ce018..9f10def8456 100644
--- a/apps/theming/l10n/zh_TW.js
+++ b/apps/theming/l10n/zh_TW.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Saved" : "已儲存",
"Admin" : "管理員",
"a safe home for all your data" : "您資料的安全屋",
+ "Name cannot be empty" : "名稱不能空白",
"The given name is too long" : "指定的名稱太長",
"The given web address is too long" : "提供的網址太長",
"The given slogan is too long" : "指定的標語太長",
diff --git a/apps/theming/l10n/zh_TW.json b/apps/theming/l10n/zh_TW.json
index 463c23a4813..3e4bdb34366 100644
--- a/apps/theming/l10n/zh_TW.json
+++ b/apps/theming/l10n/zh_TW.json
@@ -3,6 +3,7 @@
"Saved" : "已儲存",
"Admin" : "管理員",
"a safe home for all your data" : "您資料的安全屋",
+ "Name cannot be empty" : "名稱不能空白",
"The given name is too long" : "指定的名稱太長",
"The given web address is too long" : "提供的網址太長",
"The given slogan is too long" : "指定的標語太長",
diff --git a/apps/updatenotification/l10n/en_GB.js b/apps/updatenotification/l10n/en_GB.js
index 4fcccc6e776..ce1a5c3ae8e 100644
--- a/apps/updatenotification/l10n/en_GB.js
+++ b/apps/updatenotification/l10n/en_GB.js
@@ -2,6 +2,8 @@ OC.L10N.register(
"updatenotification",
{
"{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update.",
+ "Apps missing updates" : "Apps missing updates",
+ "Apps with available updates" : "Apps with available updates",
"Open updater" : "Open updater",
"Your version is up to date." : "Your version is up to date.",
"A non-default update server is in use to be checked for updates:" : "A non-default update server is in use to be checked for updates:",
@@ -11,7 +13,13 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
"Only notification for app updates are available." : "Only notification for app updates are available.",
"The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
"Checked on {lastCheckedDate}" : "Checked on {lastCheckedDate}",
+ "Checking apps for compatible updates" : "Checking apps for compatible updates",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
+ "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore.",
+ "<strong>All</strong> apps have an update for this version available" : "<strong>All</strong> apps have an update for this version available",
+ "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app has no update for this version available","<strong>%n</strong> apps have no update for this version available"],
"Could not start updater, please try the manual update" : "Could not start updater, please try the manual update",
"Update notifications" : "Update notifications",
"Channel updated" : "Channel updated",
diff --git a/apps/updatenotification/l10n/en_GB.json b/apps/updatenotification/l10n/en_GB.json
index cd2365e816b..5c293fae73b 100644
--- a/apps/updatenotification/l10n/en_GB.json
+++ b/apps/updatenotification/l10n/en_GB.json
@@ -1,5 +1,7 @@
{ "translations": {
"{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update.",
+ "Apps missing updates" : "Apps missing updates",
+ "Apps with available updates" : "Apps with available updates",
"Open updater" : "Open updater",
"Your version is up to date." : "Your version is up to date.",
"A non-default update server is in use to be checked for updates:" : "A non-default update server is in use to be checked for updates:",
@@ -9,7 +11,13 @@
"Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
"Only notification for app updates are available." : "Only notification for app updates are available.",
"The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
"Checked on {lastCheckedDate}" : "Checked on {lastCheckedDate}",
+ "Checking apps for compatible updates" : "Checking apps for compatible updates",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
+ "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore.",
+ "<strong>All</strong> apps have an update for this version available" : "<strong>All</strong> apps have an update for this version available",
+ "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app has no update for this version available","<strong>%n</strong> apps have no update for this version available"],
"Could not start updater, please try the manual update" : "Could not start updater, please try the manual update",
"Update notifications" : "Update notifications",
"Channel updated" : "Channel updated",
diff --git a/apps/updatenotification/l10n/es_MX.js b/apps/updatenotification/l10n/es_MX.js
index 3072ff1cd73..92af65e60e7 100644
--- a/apps/updatenotification/l10n/es_MX.js
+++ b/apps/updatenotification/l10n/es_MX.js
@@ -2,6 +2,8 @@ OC.L10N.register(
"updatenotification",
{
"{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
+ "Apps missing updates" : "Aplicaciones con actualizaciones faltantes",
+ "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
"Open updater" : "Abrir actualizador",
"Your version is up to date." : "Tu verisón está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
@@ -11,7 +13,13 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
"Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
"Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
+ "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
+ "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
+ "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
+ "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
"Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual",
"Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
diff --git a/apps/updatenotification/l10n/es_MX.json b/apps/updatenotification/l10n/es_MX.json
index 5192e55b8a4..e3af68385be 100644
--- a/apps/updatenotification/l10n/es_MX.json
+++ b/apps/updatenotification/l10n/es_MX.json
@@ -1,5 +1,7 @@
{ "translations": {
"{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
+ "Apps missing updates" : "Aplicaciones con actualizaciones faltantes",
+ "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
"Open updater" : "Abrir actualizador",
"Your version is up to date." : "Tu verisón está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
@@ -9,7 +11,13 @@
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
"Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
"Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
+ "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
+ "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
+ "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
+ "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
"Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual",
"Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
diff --git a/apps/updatenotification/l10n/nl.js b/apps/updatenotification/l10n/nl.js
index df8e1eb6f65..6cb9548264f 100644
--- a/apps/updatenotification/l10n/nl.js
+++ b/apps/updatenotification/l10n/nl.js
@@ -2,6 +2,8 @@ OC.L10N.register(
"updatenotification",
{
"{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.",
+ "Apps missing updates" : "Apps met ontbrekende updates",
+ "Apps with available updates" : "Apps met beschikbare updates",
"Open updater" : "Open updater",
"Your version is up to date." : "Je versie is up to date.",
"A non-default update server is in use to be checked for updates:" : "Een niet-standaard updateserver is in gebruik om te worden gecontroleerd op updates:",
@@ -11,7 +13,11 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Geef een melding over beschikbare updates aan leden van de volgende groepen:",
"Only notification for app updates are available." : "Er zijn alleen meldingen voor apps beschikbaar.",
"The selected update channel does not support updates of the server." : "Het geselecteerde updatekanaal ondersteunt geen updates voor de server.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Er is een nieuwe versie beschikbaar: <strong>{newVersionString}</strong>",
"Checked on {lastCheckedDate}" : "Gecontroleerd op {lastCheckedDate}",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Zorg ervoor dat je in config.php <samp>appstoreenabled</samp> niet op 'false' zet.",
+ "<strong>All</strong> apps have an update for this version available" : "<strong>Alle</strong> apps hebben een update voor deze versie beschikbaar",
+ "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app heeft geen update voor deze versie beschikbaar","<strong>%n</strong> apps hebben geen update voor deze versie beschikbaar"],
"Could not start updater, please try the manual update" : "Kon de updater niet starten, probeer alsjeblieft de handmatige update",
"Update notifications" : "Bijwerken meldingen",
"Channel updated" : "Kanaal bijgewerkt",
diff --git a/apps/updatenotification/l10n/nl.json b/apps/updatenotification/l10n/nl.json
index 217dc433909..411d9ebae8f 100644
--- a/apps/updatenotification/l10n/nl.json
+++ b/apps/updatenotification/l10n/nl.json
@@ -1,5 +1,7 @@
{ "translations": {
"{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.",
+ "Apps missing updates" : "Apps met ontbrekende updates",
+ "Apps with available updates" : "Apps met beschikbare updates",
"Open updater" : "Open updater",
"Your version is up to date." : "Je versie is up to date.",
"A non-default update server is in use to be checked for updates:" : "Een niet-standaard updateserver is in gebruik om te worden gecontroleerd op updates:",
@@ -9,7 +11,11 @@
"Notify members of the following groups about available updates:" : "Geef een melding over beschikbare updates aan leden van de volgende groepen:",
"Only notification for app updates are available." : "Er zijn alleen meldingen voor apps beschikbaar.",
"The selected update channel does not support updates of the server." : "Het geselecteerde updatekanaal ondersteunt geen updates voor de server.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Er is een nieuwe versie beschikbaar: <strong>{newVersionString}</strong>",
"Checked on {lastCheckedDate}" : "Gecontroleerd op {lastCheckedDate}",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Zorg ervoor dat je in config.php <samp>appstoreenabled</samp> niet op 'false' zet.",
+ "<strong>All</strong> apps have an update for this version available" : "<strong>Alle</strong> apps hebben een update voor deze versie beschikbaar",
+ "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app heeft geen update voor deze versie beschikbaar","<strong>%n</strong> apps hebben geen update voor deze versie beschikbaar"],
"Could not start updater, please try the manual update" : "Kon de updater niet starten, probeer alsjeblieft de handmatige update",
"Update notifications" : "Bijwerken meldingen",
"Channel updated" : "Kanaal bijgewerkt",
diff --git a/apps/updatenotification/l10n/sv.js b/apps/updatenotification/l10n/sv.js
index fd0de8b5df1..e3905da0386 100644
--- a/apps/updatenotification/l10n/sv.js
+++ b/apps/updatenotification/l10n/sv.js
@@ -2,6 +2,8 @@ OC.L10N.register(
"updatenotification",
{
"{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar.",
+ "Apps missing updates" : "Appar saknar uppdateringar",
+ "Apps with available updates" : "Appar med tillgängliga uppdateringar",
"Open updater" : "Öppna uppdateraren",
"Your version is up to date." : "Din version är uppdaterad.",
"A non-default update server is in use to be checked for updates:" : "En icke-standard updateringsserver används för att kolla efter uppdateringar:",
diff --git a/apps/updatenotification/l10n/sv.json b/apps/updatenotification/l10n/sv.json
index aa51612fb0c..2d47eda9e78 100644
--- a/apps/updatenotification/l10n/sv.json
+++ b/apps/updatenotification/l10n/sv.json
@@ -1,5 +1,7 @@
{ "translations": {
"{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar.",
+ "Apps missing updates" : "Appar saknar uppdateringar",
+ "Apps with available updates" : "Appar med tillgängliga uppdateringar",
"Open updater" : "Öppna uppdateraren",
"Your version is up to date." : "Din version är uppdaterad.",
"A non-default update server is in use to be checked for updates:" : "En icke-standard updateringsserver används för att kolla efter uppdateringar:",
diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js
index 6fcb6b020fb..eef794d556f 100644
--- a/apps/user_ldap/l10n/de.js
+++ b/apps/user_ldap/l10n/de.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"{nthServer}. Server" : "{nthServer}. - Server",
"No object found in the given Base DN. Please revise." : "Keine Objekte in der Base-DN gefunden, bitte überprüfen.",
"More than 1,000 directory entries available." : "Mehr als 1.000 Einträge stehen zur Verfügung.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} Eintrag in der angegebenen Base DN verfügbar","{objectsFound} Einträge in der angegebenen Base DN verfügbar"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ein Fehler ist aufgetreten. Bitte die Base DN sowie die Verbindungs- und Anmeldeeinstellungen überprüfen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json
index de12726afed..e7d24f09df0 100644
--- a/apps/user_ldap/l10n/de.json
+++ b/apps/user_ldap/l10n/de.json
@@ -31,6 +31,7 @@
"{nthServer}. Server" : "{nthServer}. - Server",
"No object found in the given Base DN. Please revise." : "Keine Objekte in der Base-DN gefunden, bitte überprüfen.",
"More than 1,000 directory entries available." : "Mehr als 1.000 Einträge stehen zur Verfügung.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} Eintrag in der angegebenen Base DN verfügbar","{objectsFound} Einträge in der angegebenen Base DN verfügbar"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ein Fehler ist aufgetreten. Bitte die Base DN sowie die Verbindungs- und Anmeldeeinstellungen überprüfen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js
index 18cbe621714..f0b95cac73f 100644
--- a/apps/user_ldap/l10n/de_DE.js
+++ b/apps/user_ldap/l10n/de_DE.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"{nthServer}. Server" : "{nthServer}. - Server",
"No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base-DN gefunden, bitte überprüfen.",
"More than 1,000 directory entries available." : "Es sind mehr als 1.000 Verzeichniseinträge verfügbar.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} Eintrag in der angegebenen Base DN verfügbar","{objectsFound} Einträge in der angegebenen Base DN verfügbar"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json
index b89f57ed553..9e05ccc3022 100644
--- a/apps/user_ldap/l10n/de_DE.json
+++ b/apps/user_ldap/l10n/de_DE.json
@@ -31,6 +31,7 @@
"{nthServer}. Server" : "{nthServer}. - Server",
"No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base-DN gefunden, bitte überprüfen.",
"More than 1,000 directory entries available." : "Es sind mehr als 1.000 Verzeichniseinträge verfügbar.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} Eintrag in der angegebenen Base DN verfügbar","{objectsFound} Einträge in der angegebenen Base DN verfügbar"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
diff --git a/apps/user_ldap/l10n/en_GB.js b/apps/user_ldap/l10n/en_GB.js
index 53108261262..5f2ca6dfa3b 100644
--- a/apps/user_ldap/l10n/en_GB.js
+++ b/apps/user_ldap/l10n/en_GB.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "No object found in the given Base DN. Please revise.",
"More than 1,000 directory entries available." : "More than 1,000 directory entries available.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} entry available within the provided Base DN","{objectsFound} entries available within the provided Base DN"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "An error occurred. Please check the Base DN, as well as connection settings and credentials.",
"Do you really want to delete the current Server Configuration?" : "Do you really want to delete the current Server Configuration?",
"Confirm Deletion" : "Confirm Deletion",
diff --git a/apps/user_ldap/l10n/en_GB.json b/apps/user_ldap/l10n/en_GB.json
index 86692e05c41..f45e625b33a 100644
--- a/apps/user_ldap/l10n/en_GB.json
+++ b/apps/user_ldap/l10n/en_GB.json
@@ -31,6 +31,7 @@
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "No object found in the given Base DN. Please revise.",
"More than 1,000 directory entries available." : "More than 1,000 directory entries available.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} entry available within the provided Base DN","{objectsFound} entries available within the provided Base DN"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "An error occurred. Please check the Base DN, as well as connection settings and credentials.",
"Do you really want to delete the current Server Configuration?" : "Do you really want to delete the current Server Configuration?",
"Confirm Deletion" : "Confirm Deletion",
diff --git a/apps/user_ldap/l10n/es.js b/apps/user_ldap/l10n/es.js
index f95a6b51690..f847269a804 100644
--- a/apps/user_ldap/l10n/es.js
+++ b/apps/user_ldap/l10n/es.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"{nthServer}. Server" : "{nthServer}. servidor",
"No object found in the given Base DN. Please revise." : "No se encuentra ningún objeto en la Base DN dada. Por favor revisar.",
"More than 1,000 directory entries available." : "Más de 1.000 entradas de directorios disponibles.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} entrada disponible en la base DN proporcionada","{objectsFound} entradas disponibles en la base DN proporcionada"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Un error ocurrió. Por favor revise la Base DN, también como la configuración de la conexión y credenciales.",
"Do you really want to delete the current Server Configuration?" : "¿Realmente desea eliminar la configuración actual del servidor?",
"Confirm Deletion" : "Confirmar eliminación",
diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json
index 38614886c35..3bf0944ee2e 100644
--- a/apps/user_ldap/l10n/es.json
+++ b/apps/user_ldap/l10n/es.json
@@ -31,6 +31,7 @@
"{nthServer}. Server" : "{nthServer}. servidor",
"No object found in the given Base DN. Please revise." : "No se encuentra ningún objeto en la Base DN dada. Por favor revisar.",
"More than 1,000 directory entries available." : "Más de 1.000 entradas de directorios disponibles.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} entrada disponible en la base DN proporcionada","{objectsFound} entradas disponibles en la base DN proporcionada"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Un error ocurrió. Por favor revise la Base DN, también como la configuración de la conexión y credenciales.",
"Do you really want to delete the current Server Configuration?" : "¿Realmente desea eliminar la configuración actual del servidor?",
"Confirm Deletion" : "Confirmar eliminación",
diff --git a/apps/user_ldap/l10n/es_MX.js b/apps/user_ldap/l10n/es_MX.js
index 5a3d3d29d0d..3c7f274aeaf 100644
--- a/apps/user_ldap/l10n/es_MX.js
+++ b/apps/user_ldap/l10n/es_MX.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"{nthServer}. Server" : "{nthServer}. Servidor",
"No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.",
"More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} registro disponible dentro del DN base proporcionado","{objectsFound} registros disponibles dentro del DN base proporcionado"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.",
"Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?",
"Confirm Deletion" : "Confirmar el borrado",
diff --git a/apps/user_ldap/l10n/es_MX.json b/apps/user_ldap/l10n/es_MX.json
index 07497d06ceb..efa2733f123 100644
--- a/apps/user_ldap/l10n/es_MX.json
+++ b/apps/user_ldap/l10n/es_MX.json
@@ -31,6 +31,7 @@
"{nthServer}. Server" : "{nthServer}. Servidor",
"No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.",
"More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} registro disponible dentro del DN base proporcionado","{objectsFound} registros disponibles dentro del DN base proporcionado"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.",
"Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?",
"Confirm Deletion" : "Confirmar el borrado",
diff --git a/apps/user_ldap/l10n/nl.js b/apps/user_ldap/l10n/nl.js
index 02cd70b0b0a..9737d3487e6 100644
--- a/apps/user_ldap/l10n/nl.js
+++ b/apps/user_ldap/l10n/nl.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "Geen object gevonden in de basis DN. Review instellingen.",
"More than 1,000 directory entries available." : "Meer dan 1000 directorynamen beschikbaar.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} account beschikbaar binnen de provider Basis DN","{objectsFound} accounts beschikbaar binnen de provider Basis DN"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Er trad een fout op. Controleer de Basis DN en de verbindingsinstellingen en inloggegevens.",
"Do you really want to delete the current Server Configuration?" : "Wilt je werkelijk de huidige Serverconfiguratie verwijderen?",
"Confirm Deletion" : "Bevestig verwijderen",
diff --git a/apps/user_ldap/l10n/nl.json b/apps/user_ldap/l10n/nl.json
index 6f8efdd7e46..b333d97d324 100644
--- a/apps/user_ldap/l10n/nl.json
+++ b/apps/user_ldap/l10n/nl.json
@@ -31,6 +31,7 @@
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "Geen object gevonden in de basis DN. Review instellingen.",
"More than 1,000 directory entries available." : "Meer dan 1000 directorynamen beschikbaar.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} account beschikbaar binnen de provider Basis DN","{objectsFound} accounts beschikbaar binnen de provider Basis DN"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Er trad een fout op. Controleer de Basis DN en de verbindingsinstellingen en inloggegevens.",
"Do you really want to delete the current Server Configuration?" : "Wilt je werkelijk de huidige Serverconfiguratie verwijderen?",
"Confirm Deletion" : "Bevestig verwijderen",
diff --git a/apps/user_ldap/l10n/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js
index 0172f03d731..e09d211a066 100644
--- a/apps/user_ldap/l10n/pt_BR.js
+++ b/apps/user_ldap/l10n/pt_BR.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"{nthServer}. Server" : "{nthServer}. Servidor",
"No object found in the given Base DN. Please revise." : "Nenhum objeto encontrado na Base DN informada. Por favor revise.",
"More than 1,000 directory entries available." : "Mais de 1.000 entradas de diretório disponíveis.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} entrada disponível na Base DN fornecida","{objectsFound} entradas disponíveis na Base DN fornecida"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Um erro ocorreu. Por favor verifique a Base DN e também as configurações de conexão e credenciais.",
"Do you really want to delete the current Server Configuration?" : "Você realmente quer excluir as configurações atuais do servidor?",
"Confirm Deletion" : "Confirmar Exclusão",
diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json
index 6636c51c157..6e1444017bb 100644
--- a/apps/user_ldap/l10n/pt_BR.json
+++ b/apps/user_ldap/l10n/pt_BR.json
@@ -31,6 +31,7 @@
"{nthServer}. Server" : "{nthServer}. Servidor",
"No object found in the given Base DN. Please revise." : "Nenhum objeto encontrado na Base DN informada. Por favor revise.",
"More than 1,000 directory entries available." : "Mais de 1.000 entradas de diretório disponíveis.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} entrada disponível na Base DN fornecida","{objectsFound} entradas disponíveis na Base DN fornecida"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Um erro ocorreu. Por favor verifique a Base DN e também as configurações de conexão e credenciais.",
"Do you really want to delete the current Server Configuration?" : "Você realmente quer excluir as configurações atuais do servidor?",
"Confirm Deletion" : "Confirmar Exclusão",
diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php
index 74c7aa7a68f..fb5b5478102 100644
--- a/apps/user_ldap/lib/Helper.php
+++ b/apps/user_ldap/lib/Helper.php
@@ -165,7 +165,7 @@ class Helper {
');
$delRows = $query->execute(array($prefix.'%'));
- if(\OCP\DB::isError($delRows)) {
+ if($delRows === null) {
return false;
}
diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js
index a38ae4126bd..f608d75fbbc 100644
--- a/core/l10n/en_GB.js
+++ b/core/l10n/en_GB.js
@@ -279,6 +279,7 @@ OC.L10N.register(
"We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds.",
"Stay logged in" : "Stay logged in",
"Forgot password?" : "Forgot password?",
+ "Back to login" : "Back to login",
"Alternative Logins" : "Alternative Logins",
"Account access" : "Account access",
"You are about to grant %s access to your %s account." : "You are about to grant %s access to your %s account.",
diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json
index b5928d66b87..6c3746ba471 100644
--- a/core/l10n/en_GB.json
+++ b/core/l10n/en_GB.json
@@ -277,6 +277,7 @@
"We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds.",
"Stay logged in" : "Stay logged in",
"Forgot password?" : "Forgot password?",
+ "Back to login" : "Back to login",
"Alternative Logins" : "Alternative Logins",
"Account access" : "Account access",
"You are about to grant %s access to your %s account." : "You are about to grant %s access to your %s account.",
diff --git a/core/l10n/es.js b/core/l10n/es.js
index b0f8e5552ca..27d7a64493a 100644
--- a/core/l10n/es.js
+++ b/core/l10n/es.js
@@ -75,7 +75,7 @@ OC.L10N.register(
"Failed to authenticate, try again" : "Autenticación fallida, vuelva a intentarlo",
"seconds ago" : "hace segundos",
"Logging in …" : "Iniciando sesión ...",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Se ha enviado un enlace para restablecer su contraseña a su correo electrónico. Si usted no lo recibe en un tiempo razonable, revise su carpeta de spam.<br>Si no lo encuentra, consulte a su administrador.",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Se ha enviado un enlace para restablecer la contraseña a tu correo electrónico. Si no lo recibes en un tiempo razonable, revisa tu carpeta de correo no deseado.<br>Si no está ahí, ponte en contacto con el administrador.",
"Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos han sido cifrados. No habrá forma de recuperar sus datos tras resetear la contraseña.<br /> Si no está seguro de qué hacer, contacte con su administrador antes de continuar. ¿Está seguro de qué quiere continuar?",
"I know what I'm doing" : "Sé lo que estoy haciendo",
"Password can not be changed. Please contact your administrator." : "La contraseña no se puede cambiar. Por favor, contacte a su administrador.",
diff --git a/core/l10n/es.json b/core/l10n/es.json
index fca64a2ac5f..64fc22b4a04 100644
--- a/core/l10n/es.json
+++ b/core/l10n/es.json
@@ -73,7 +73,7 @@
"Failed to authenticate, try again" : "Autenticación fallida, vuelva a intentarlo",
"seconds ago" : "hace segundos",
"Logging in …" : "Iniciando sesión ...",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Se ha enviado un enlace para restablecer su contraseña a su correo electrónico. Si usted no lo recibe en un tiempo razonable, revise su carpeta de spam.<br>Si no lo encuentra, consulte a su administrador.",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Se ha enviado un enlace para restablecer la contraseña a tu correo electrónico. Si no lo recibes en un tiempo razonable, revisa tu carpeta de correo no deseado.<br>Si no está ahí, ponte en contacto con el administrador.",
"Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos han sido cifrados. No habrá forma de recuperar sus datos tras resetear la contraseña.<br /> Si no está seguro de qué hacer, contacte con su administrador antes de continuar. ¿Está seguro de qué quiere continuar?",
"I know what I'm doing" : "Sé lo que estoy haciendo",
"Password can not be changed. Please contact your administrator." : "La contraseña no se puede cambiar. Por favor, contacte a su administrador.",
diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js
index ee13c8c5e78..a97b6bdcbfe 100644
--- a/core/l10n/es_MX.js
+++ b/core/l10n/es_MX.js
@@ -279,6 +279,7 @@ OC.L10N.register(
"We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ",
"Stay logged in" : "Mantener la sesión abierta",
"Forgot password?" : "¿Olvidaste tu contraseña?",
+ "Back to login" : "Regresar al inicio de sesión",
"Alternative Logins" : "Accesos Alternativos",
"Account access" : "Acceo de cuenta",
"You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.",
diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json
index 8bf98d92bfb..793a0bb6bdd 100644
--- a/core/l10n/es_MX.json
+++ b/core/l10n/es_MX.json
@@ -277,6 +277,7 @@
"We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ",
"Stay logged in" : "Mantener la sesión abierta",
"Forgot password?" : "¿Olvidaste tu contraseña?",
+ "Back to login" : "Regresar al inicio de sesión",
"Alternative Logins" : "Accesos Alternativos",
"Account access" : "Acceo de cuenta",
"You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.",
diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js
index b29810ce03b..b208fba955a 100644
--- a/core/l10n/zh_CN.js
+++ b/core/l10n/zh_CN.js
@@ -265,6 +265,7 @@ OC.L10N.register(
"Wrong password." : "密码错误",
"Stay logged in" : "保持登录",
"Forgot password?" : "忘记密码?",
+ "Back to login" : "返回登录",
"Alternative Logins" : "其他登录方式",
"Account access" : "账户访问",
"You are about to grant %s access to your %s account." : "你将分配 %s 访问权限给你的 %s 账户。",
@@ -301,6 +302,7 @@ OC.L10N.register(
"This page will refresh itself when the %s instance is available again." : "当实例 %s 再次可用时此页面将刷新.",
"Contact your system administrator if this message persists or appeared unexpectedly." : "如果这个消息一直存在或不停出现, 请联系你的系统管理员.",
"Thank you for your patience." : "感谢您久等了.",
+ "%s (3rdparty)" : "%s(第三方)",
"This action requires you to confirm your password:" : "此操作需要确认您的密码:",
"Wrong password. Reset it?" : "密码错误。是否重置?",
"You are about to grant \"%s\" access to your %s account." : "你将分配 \"%s\" 访问权限给你的 %s 账户。",
diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json
index 273f4b4fc7d..75913639eb7 100644
--- a/core/l10n/zh_CN.json
+++ b/core/l10n/zh_CN.json
@@ -263,6 +263,7 @@
"Wrong password." : "密码错误",
"Stay logged in" : "保持登录",
"Forgot password?" : "忘记密码?",
+ "Back to login" : "返回登录",
"Alternative Logins" : "其他登录方式",
"Account access" : "账户访问",
"You are about to grant %s access to your %s account." : "你将分配 %s 访问权限给你的 %s 账户。",
@@ -299,6 +300,7 @@
"This page will refresh itself when the %s instance is available again." : "当实例 %s 再次可用时此页面将刷新.",
"Contact your system administrator if this message persists or appeared unexpectedly." : "如果这个消息一直存在或不停出现, 请联系你的系统管理员.",
"Thank you for your patience." : "感谢您久等了.",
+ "%s (3rdparty)" : "%s(第三方)",
"This action requires you to confirm your password:" : "此操作需要确认您的密码:",
"Wrong password. Reset it?" : "密码错误。是否重置?",
"You are about to grant \"%s\" access to your %s account." : "你将分配 \"%s\" 访问权限给你的 %s 账户。",
diff --git a/lib/base.php b/lib/base.php
index f0e139d92c8..0c78d235c59 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -426,7 +426,7 @@ class OC {
// if session can't be started break with http 500 error
} catch (Exception $e) {
- \OCP\Util::logException('base', $e);
+ \OC::$server->getLogger()->logException($e, ['app' => 'base']);
//show the user a detailed error page
OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR);
OC_Template::printExceptionErrorPage($e);
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index 5a390eaf443..fb699e35a61 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -203,7 +203,6 @@ return array(
'OCP\\IEventSource' => $baseDir . '/lib/public/IEventSource.php',
'OCP\\IGroup' => $baseDir . '/lib/public/IGroup.php',
'OCP\\IGroupManager' => $baseDir . '/lib/public/IGroupManager.php',
- 'OCP\\IHelper' => $baseDir . '/lib/public/IHelper.php',
'OCP\\IImage' => $baseDir . '/lib/public/IImage.php',
'OCP\\IL10N' => $baseDir . '/lib/public/IL10N.php',
'OCP\\ILogger' => $baseDir . '/lib/public/ILogger.php',
@@ -349,7 +348,6 @@ return array(
'OC\\AppFramework\\Utility\\ControllerMethodReflector' => $baseDir . '/lib/private/AppFramework/Utility/ControllerMethodReflector.php',
'OC\\AppFramework\\Utility\\SimpleContainer' => $baseDir . '/lib/private/AppFramework/Utility/SimpleContainer.php',
'OC\\AppFramework\\Utility\\TimeFactory' => $baseDir . '/lib/private/AppFramework/Utility/TimeFactory.php',
- 'OC\\AppHelper' => $baseDir . '/lib/private/AppHelper.php',
'OC\\App\\AppManager' => $baseDir . '/lib/private/App/AppManager.php',
'OC\\App\\AppStore\\Bundles\\Bundle' => $baseDir . '/lib/private/App/AppStore/Bundles/Bundle.php',
'OC\\App\\AppStore\\Bundles\\BundleFetcher' => $baseDir . '/lib/private/App/AppStore/Bundles/BundleFetcher.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index 8e9749f2683..40b9c6237f0 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -233,7 +233,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OCP\\IEventSource' => __DIR__ . '/../../..' . '/lib/public/IEventSource.php',
'OCP\\IGroup' => __DIR__ . '/../../..' . '/lib/public/IGroup.php',
'OCP\\IGroupManager' => __DIR__ . '/../../..' . '/lib/public/IGroupManager.php',
- 'OCP\\IHelper' => __DIR__ . '/../../..' . '/lib/public/IHelper.php',
'OCP\\IImage' => __DIR__ . '/../../..' . '/lib/public/IImage.php',
'OCP\\IL10N' => __DIR__ . '/../../..' . '/lib/public/IL10N.php',
'OCP\\ILogger' => __DIR__ . '/../../..' . '/lib/public/ILogger.php',
@@ -379,7 +378,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OC\\AppFramework\\Utility\\ControllerMethodReflector' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Utility/ControllerMethodReflector.php',
'OC\\AppFramework\\Utility\\SimpleContainer' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Utility/SimpleContainer.php',
'OC\\AppFramework\\Utility\\TimeFactory' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Utility/TimeFactory.php',
- 'OC\\AppHelper' => __DIR__ . '/../../..' . '/lib/private/AppHelper.php',
'OC\\App\\AppManager' => __DIR__ . '/../../..' . '/lib/private/App/AppManager.php',
'OC\\App\\AppStore\\Bundles\\Bundle' => __DIR__ . '/../../..' . '/lib/private/App/AppStore/Bundles/Bundle.php',
'OC\\App\\AppStore\\Bundles\\BundleFetcher' => __DIR__ . '/../../..' . '/lib/private/App/AppStore/Bundles/BundleFetcher.php',
diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js
index 340c12b4fee..2385ede7ee7 100644
--- a/lib/l10n/nl.js
+++ b/lib/l10n/nl.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "De volgende platformen worden ondersteund: %s",
"Server version %s or higher is required." : "Serverversie %s of hoger vereist.",
"Server version %s or lower is required." : "Serverversie %s of lager vereist.",
+ "Logged in user must be an admin" : "Ingelogde gebruiker moet een beheerder zijn",
"Unknown filetype" : "Onbekend bestandsformaat",
"Invalid image" : "Ongeldige afbeelding",
"Avatar image is not square" : "Avatar afbeelding is niet vierkant",
diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json
index 8d5c3fd1099..681882903de 100644
--- a/lib/l10n/nl.json
+++ b/lib/l10n/nl.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "De volgende platformen worden ondersteund: %s",
"Server version %s or higher is required." : "Serverversie %s of hoger vereist.",
"Server version %s or lower is required." : "Serverversie %s of lager vereist.",
+ "Logged in user must be an admin" : "Ingelogde gebruiker moet een beheerder zijn",
"Unknown filetype" : "Onbekend bestandsformaat",
"Invalid image" : "Ongeldige afbeelding",
"Avatar image is not square" : "Avatar afbeelding is niet vierkant",
diff --git a/lib/private/App/CodeChecker/DeprecationCheck.php b/lib/private/App/CodeChecker/DeprecationCheck.php
index 722697f3313..3e843e4f91a 100644
--- a/lib/private/App/CodeChecker/DeprecationCheck.php
+++ b/lib/private/App/CodeChecker/DeprecationCheck.php
@@ -40,7 +40,6 @@ class DeprecationCheck extends AbstractCheck {
'OCP\Contacts' => '8.1.0',
'OCP\DB' => '8.1.0',
- 'OCP\IHelper' => '8.1.0',
'OCP\JSON' => '8.1.0',
'OCP\Response' => '8.1.0',
'OCP\AppFramework\IApi' => '8.0.0',
diff --git a/lib/private/AppHelper.php b/lib/private/AppHelper.php
deleted file mode 100644
index c99cf4a8304..00000000000
--- a/lib/private/AppHelper.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bart Visscher <bartv@thisnet.nl>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @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 OC;
-
-/**
- * Class AppHelper
- * @deprecated 8.1.0
- */
-class AppHelper implements \OCP\IHelper {
- /**
- * Gets the content of an URL by using CURL or a fallback if it is not
- * installed
- * @param string $url the url that should be fetched
- * @return string the content of the webpage
- * @deprecated 8.1.0 Use \OCP\IServerContainer::getHTTPClientService
- */
- public function getUrlContent($url) {
- try {
- $client = \OC::$server->getHTTPClientService()->newClient();
- $response = $client->get($url);
- return $response->getBody();
- } catch (\Exception $e) {
- return false;
- }
- }
-}
diff --git a/lib/private/Files/ObjectStore/SwiftFactory.php b/lib/private/Files/ObjectStore/SwiftFactory.php
index 9513cdc3ab8..eab3441ff2c 100644
--- a/lib/private/Files/ObjectStore/SwiftFactory.php
+++ b/lib/private/Files/ObjectStore/SwiftFactory.php
@@ -60,7 +60,12 @@ class SwiftFactory {
}
private function cacheToken(Token $token, string $cacheKey) {
- $this->cache->set($cacheKey . '/token', json_encode($token));
+ if ($token instanceof \OpenStack\Identity\v3\Models\Token) {
+ $value = json_encode($token->export());
+ } else {
+ $value = json_encode($token);
+ }
+ $this->cache->set($cacheKey . '/token', $value);
}
/**
diff --git a/lib/private/Server.php b/lib/private/Server.php
index e0bd21b0358..af739c91b02 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -470,9 +470,6 @@ class Server extends ServerContainer implements IServerContainer {
});
$this->registerAlias('URLGenerator', \OCP\IURLGenerator::class);
- $this->registerService('AppHelper', function ($c) {
- return new \OC\AppHelper();
- });
$this->registerAlias('AppFetcher', AppFetcher::class);
$this->registerAlias('CategoryFetcher', CategoryFetcher::class);
@@ -1459,13 +1456,6 @@ class Server extends ServerContainer implements IServerContainer {
}
/**
- * @return \OCP\IHelper
- */
- public function getHelper() {
- return $this->query('AppHelper');
- }
-
- /**
* @return AppFetcher
*/
public function getAppFetcher() {
diff --git a/lib/private/Tags.php b/lib/private/Tags.php
index 1b3505da5bd..2bc5572c40f 100644
--- a/lib/private/Tags.php
+++ b/lib/private/Tags.php
@@ -236,7 +236,7 @@ class Tags implements \OCP\ITags {
}
$entries[$objId][] = $row['category'];
}
- if (\OCP\DB::isError($result)) {
+ if ($result === null) {
\OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR);
return false;
}
@@ -290,7 +290,7 @@ class Tags implements \OCP\ITags {
try {
$stmt = \OCP\DB::prepare($sql);
$result = $stmt->execute(array($tagId));
- if (\OCP\DB::isError($result)) {
+ if ($result === null) {
\OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR);
return false;
}
@@ -491,12 +491,13 @@ class Tags implements \OCP\ITags {
$tags = $this->tags;
// For some reason this is needed or array_search(i) will return 0..?
ksort($tags);
+ $dbConnection = \OC::$server->getDatabaseConnection();
foreach(self::$relations as $relation) {
$tagId = $this->getTagId($relation['tag']);
\OCP\Util::writeLog('core', __METHOD__ . 'catid, ' . $relation['tag'] . ' ' . $tagId, \OCP\Util::DEBUG);
if($tagId) {
try {
- \OCP\DB::insertIfNotExist(self::RELATION_TABLE,
+ $dbConnection->insertIfNotExist(self::RELATION_TABLE,
array(
'objid' => $relation['objid'],
'categoryid' => $tagId,
@@ -532,7 +533,7 @@ class Tags implements \OCP\ITags {
$stmt = \OCP\DB::prepare('SELECT `id` FROM `' . self::TAG_TABLE . '` '
. 'WHERE `uid` = ?');
$result = $stmt->execute(array($arguments['uid']));
- if (\OCP\DB::isError($result)) {
+ if ($result === null) {
\OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR);
}
} catch(\Exception $e) {
@@ -570,7 +571,7 @@ class Tags implements \OCP\ITags {
$stmt = \OCP\DB::prepare('DELETE FROM `' . self::TAG_TABLE . '` '
. 'WHERE `uid` = ?');
$result = $stmt->execute(array($arguments['uid']));
- if (\OCP\DB::isError($result)) {
+ if ($result === null) {
\OCP\Util::writeLog('core', __METHOD__. ', DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR);
}
} catch(\Exception $e) {
@@ -601,7 +602,7 @@ class Tags implements \OCP\ITags {
$updates[] = $this->type;
$stmt = \OCP\DB::prepare($query);
$result = $stmt->execute($updates);
- if (\OCP\DB::isError($result)) {
+ if ($result === null) {
\OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR);
return false;
}
@@ -679,7 +680,7 @@ class Tags implements \OCP\ITags {
$tagId = $tag;
}
try {
- \OCP\DB::insertIfNotExist(self::RELATION_TABLE,
+ \OC::$server->getDatabaseConnection()->insertIfNotExist(self::RELATION_TABLE,
array(
'objid' => $objid,
'categoryid' => $tagId,
@@ -770,7 +771,7 @@ class Tags implements \OCP\ITags {
. 'WHERE `categoryid` = ?';
$stmt = \OCP\DB::prepare($sql);
$result = $stmt->execute(array($id));
- if (\OCP\DB::isError($result)) {
+ if ($result === null) {
\OCP\Util::writeLog('core',
__METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(),
\OCP\Util::ERROR);
diff --git a/lib/private/legacy/api.php b/lib/private/legacy/api.php
index 7fe84b73c43..fde1d99e79d 100644
--- a/lib/private/legacy/api.php
+++ b/lib/private/legacy/api.php
@@ -38,43 +38,9 @@ use OCP\AppFramework\Http;
class OC_API {
/**
- * API authentication levels
- */
-
- /** @deprecated Use \OCP\API::GUEST_AUTH instead */
- const GUEST_AUTH = 0;
-
- /** @deprecated Use \OCP\API::USER_AUTH instead */
- const USER_AUTH = 1;
-
- /** @deprecated Use \OCP\API::SUBADMIN_AUTH instead */
- const SUBADMIN_AUTH = 2;
-
- /** @deprecated Use \OCP\API::ADMIN_AUTH instead */
- const ADMIN_AUTH = 3;
-
- /**
- * API Response Codes
- */
-
- /** @deprecated Use \OCP\API::RESPOND_UNAUTHORISED instead */
- const RESPOND_UNAUTHORISED = 997;
-
- /** @deprecated Use \OCP\API::RESPOND_SERVER_ERROR instead */
- const RESPOND_SERVER_ERROR = 996;
-
- /** @deprecated Use \OCP\API::RESPOND_NOT_FOUND instead */
- const RESPOND_NOT_FOUND = 998;
-
- /** @deprecated Use \OCP\API::RESPOND_UNKNOWN_ERROR instead */
- const RESPOND_UNKNOWN_ERROR = 999;
-
- /**
* api actions
*/
protected static $actions = array();
- private static $logoutRequired = false;
- private static $isLoggedIn = false;
/**
* registers an api call
@@ -107,249 +73,6 @@ class OC_API {
}
/**
- * handles an api call
- * @param array $parameters
- */
- public static function call($parameters) {
- $request = \OC::$server->getRequest();
- $method = $request->getMethod();
-
- // Prepare the request variables
- if($method === 'PUT') {
- $parameters['_put'] = $request->getParams();
- } else if($method === 'DELETE') {
- $parameters['_delete'] = $request->getParams();
- }
- $name = $parameters['_route'];
- // Foreach registered action
- $responses = array();
- $appManager = \OC::$server->getAppManager();
- foreach(self::$actions[$name] as $action) {
- // Check authentication and availability
- if(!self::isAuthorised($action)) {
- $responses[] = array(
- 'app' => $action['app'],
- 'response' => new \OC\OCS\Result(null, API::RESPOND_UNAUTHORISED, 'Unauthorised'),
- 'shipped' => $appManager->isShipped($action['app']),
- );
- continue;
- }
- if(!is_callable($action['action'])) {
- $responses[] = array(
- 'app' => $action['app'],
- 'response' => new \OC\OCS\Result(null, API::RESPOND_NOT_FOUND, 'Api method not found'),
- 'shipped' => $appManager->isShipped($action['app']),
- );
- continue;
- }
- // Run the action
- $responses[] = array(
- 'app' => $action['app'],
- 'response' => call_user_func($action['action'], $parameters),
- 'shipped' => $appManager->isShipped($action['app']),
- );
- }
- $response = self::mergeResponses($responses);
- $format = self::requestedFormat();
- if (self::$logoutRequired) {
- \OC::$server->getUserSession()->logout();
- }
-
- self::respond($response, $format);
- }
-
- /**
- * merge the returned result objects into one response
- * @param array $responses
- * @return \OC\OCS\Result
- */
- public static function mergeResponses($responses) {
- // Sort into shipped and third-party
- $shipped = array(
- 'succeeded' => array(),
- 'failed' => array(),
- );
- $thirdparty = array(
- 'succeeded' => array(),
- 'failed' => array(),
- );
-
- foreach($responses as $response) {
- if($response['shipped'] || ($response['app'] === 'core')) {
- if($response['response']->succeeded()) {
- $shipped['succeeded'][$response['app']] = $response;
- } else {
- $shipped['failed'][$response['app']] = $response;
- }
- } else {
- if($response['response']->succeeded()) {
- $thirdparty['succeeded'][$response['app']] = $response;
- } else {
- $thirdparty['failed'][$response['app']] = $response;
- }
- }
- }
-
- // Remove any error responses if there is one shipped response that succeeded
- if(!empty($shipped['failed'])) {
- // Which shipped response do we use if they all failed?
- // They may have failed for different reasons (different status codes)
- // Which response code should we return?
- // Maybe any that are not \OCP\API::RESPOND_SERVER_ERROR
- // Merge failed responses if more than one
- $data = array();
- foreach($shipped['failed'] as $failure) {
- $data = array_merge_recursive($data, $failure['response']->getData());
- }
- $picked = reset($shipped['failed']);
- $code = $picked['response']->getStatusCode();
- $meta = $picked['response']->getMeta();
- $headers = $picked['response']->getHeaders();
- $response = new \OC\OCS\Result($data, $code, $meta['message'], $headers);
- return $response;
- } elseif(!empty($shipped['succeeded'])) {
- $responses = array_merge($shipped['succeeded'], $thirdparty['succeeded']);
- } elseif(!empty($thirdparty['failed'])) {
- // Merge failed responses if more than one
- $data = array();
- foreach($thirdparty['failed'] as $failure) {
- $data = array_merge_recursive($data, $failure['response']->getData());
- }
- $picked = reset($thirdparty['failed']);
- $code = $picked['response']->getStatusCode();
- $meta = $picked['response']->getMeta();
- $headers = $picked['response']->getHeaders();
- $response = new \OC\OCS\Result($data, $code, $meta['message'], $headers);
- return $response;
- } else {
- $responses = $thirdparty['succeeded'];
- }
- // Merge the successful responses
- $data = [];
- $codes = [];
- $header = [];
-
- foreach($responses as $response) {
- if($response['shipped']) {
- $data = array_merge_recursive($response['response']->getData(), $data);
- } else {
- $data = array_merge_recursive($data, $response['response']->getData());
- }
- $header = array_merge_recursive($header, $response['response']->getHeaders());
- $codes[] = ['code' => $response['response']->getStatusCode(),
- 'meta' => $response['response']->getMeta()];
- }
-
- // Use any non 100 status codes
- $statusCode = 100;
- $statusMessage = null;
- foreach($codes as $code) {
- if($code['code'] != 100) {
- $statusCode = $code['code'];
- $statusMessage = $code['meta']['message'];
- break;
- }
- }
-
- return new \OC\OCS\Result($data, $statusCode, $statusMessage, $header);
- }
-
- /**
- * authenticate the api call
- * @param array $action the action details as supplied to OC_API::register()
- * @return bool
- */
- private static function isAuthorised($action) {
- $level = $action['authlevel'];
- switch($level) {
- case API::GUEST_AUTH:
- // Anyone can access
- return true;
- case API::USER_AUTH:
- // User required
- return self::loginUser();
- case API::SUBADMIN_AUTH:
- // Check for subadmin
- $user = self::loginUser();
- if(!$user) {
- return false;
- } else {
- $userObject = \OC::$server->getUserSession()->getUser();
- if($userObject === null) {
- return false;
- }
- $isSubAdmin = \OC::$server->getGroupManager()->getSubAdmin()->isSubAdmin($userObject);
- $admin = OC_User::isAdminUser($user);
- if($isSubAdmin || $admin) {
- return true;
- } else {
- return false;
- }
- }
- case API::ADMIN_AUTH:
- // Check for admin
- $user = self::loginUser();
- if(!$user) {
- return false;
- } else {
- return OC_User::isAdminUser($user);
- }
- default:
- // oops looks like invalid level supplied
- return false;
- }
- }
-
- /**
- * http basic auth
- * @return string|false (username, or false on failure)
- */
- private static function loginUser() {
- if(self::$isLoggedIn === true) {
- return \OC_User::getUser();
- }
-
- // reuse existing login
- $loggedIn = \OC::$server->getUserSession()->isLoggedIn();
- if ($loggedIn === true) {
- if (\OC::$server->getTwoFactorAuthManager()->needsSecondFactor(\OC::$server->getUserSession()->getUser())) {
- // Do not allow access to OCS until the 2FA challenge was solved successfully
- return false;
- }
- $ocsApiRequest = isset($_SERVER['HTTP_OCS_APIREQUEST']) ? $_SERVER['HTTP_OCS_APIREQUEST'] === 'true' : false;
- if ($ocsApiRequest) {
-
- // initialize the user's filesystem
- \OC_Util::setupFS(\OC_User::getUser());
- self::$isLoggedIn = true;
-
- return OC_User::getUser();
- }
- return false;
- }
-
- // basic auth - because OC_User::login will create a new session we shall only try to login
- // if user and pass are set
- $userSession = \OC::$server->getUserSession();
- $request = \OC::$server->getRequest();
- try {
- if ($userSession->tryTokenLogin($request)
- || $userSession->tryBasicAuthLogin($request, \OC::$server->getBruteForceThrottler())) {
- self::$logoutRequired = true;
- } else {
- return false;
- }
- // initialize the user's filesystem
- \OC_Util::setupFS(\OC_User::getUser());
- self::$isLoggedIn = true;
-
- return \OC_User::getUser();
- } catch (\OC\User\LoginException $e) {
- return false;
- }
- }
-
- /**
* respond to a call
* @param \OC\OCS\Result $result
* @param string $format the format xml|json
diff --git a/lib/private/legacy/response.php b/lib/private/legacy/response.php
index 1b0b01de972..4186822c269 100644
--- a/lib/private/legacy/response.php
+++ b/lib/private/legacy/response.php
@@ -31,7 +31,7 @@
*/
class OC_Response {
- const STATUS_FOUND = 304;
+ const STATUS_FOUND = 302;
const STATUS_NOT_MODIFIED = 304;
const STATUS_TEMPORARY_REDIRECT = 307;
const STATUS_BAD_REQUEST = 400;
@@ -41,32 +41,6 @@ class OC_Response {
const STATUS_SERVICE_UNAVAILABLE = 503;
/**
- * Enable response caching by sending correct HTTP headers
- * @param integer $cache_time time to cache the response
- * >0 cache time in seconds
- * 0 and <0 enable default browser caching
- * null cache indefinitely
- */
- static public function enableCaching($cache_time = null) {
- if (is_numeric($cache_time)) {
- header('Pragma: public');// enable caching in IE
- if ($cache_time > 0) {
- self::setExpiresHeader('PT'.$cache_time.'S');
- header('Cache-Control: max-age='.$cache_time.', must-revalidate');
- }
- else {
- header('Expires: 0');
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- }
- }
- else {
- header('Cache-Control: cache');
- header('Pragma: cache');
- }
-
- }
-
- /**
* Set response status
* @param int $status a HTTP status code, see also the STATUS constants
*/
@@ -77,12 +51,12 @@ class OC_Response {
$status = $status . ' Not Modified';
break;
case self::STATUS_TEMPORARY_REDIRECT:
- if ($protocol == 'HTTP/1.1') {
- $status = $status . ' Temporary Redirect';
- break;
- } else {
+ if ($protocol == 'HTTP/1.0') {
$status = self::STATUS_FOUND;
// fallthrough
+ } else {
+ $status = $status . ' Temporary Redirect';
+ break;
}
case self::STATUS_FOUND;
$status = $status . ' Found';
@@ -101,75 +75,6 @@ class OC_Response {
}
/**
- * Send redirect response
- * @param string $location to redirect to
- */
- static public function redirect($location) {
- self::setStatus(self::STATUS_TEMPORARY_REDIRECT);
- header('Location: '.$location);
- }
-
- /**
- * Set response expire time
- * @param string|DateTime|int $expires date-time when the response expires
- * string for DateInterval from now
- * DateTime object when to expire response
- */
- static public function setExpiresHeader($expires) {
- if (is_string($expires) && $expires[0] == 'P') {
- $interval = $expires;
- $expires = new DateTime('now');
- $expires->add(new DateInterval($interval));
- }
- if ($expires instanceof DateTime) {
- $expires->setTimezone(new DateTimeZone('GMT'));
- $expires = $expires->format(DateTime::RFC2822);
- }
- header('Expires: '.$expires);
- }
-
- /**
- * Checks and set ETag header, when the request matches sends a
- * 'not modified' response
- * @param string $etag token to use for modification check
- */
- static public function setETagHeader($etag) {
- if (empty($etag)) {
- return;
- }
- $etag = '"'.$etag.'"';
- if (isset($_SERVER['HTTP_IF_NONE_MATCH']) &&
- trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
- self::setStatus(self::STATUS_NOT_MODIFIED);
- exit;
- }
- header('ETag: '.$etag);
- }
-
- /**
- * Checks and set Last-Modified header, when the request matches sends a
- * 'not modified' response
- * @param int|DateTime|string $lastModified time when the response was last modified
- */
- static public function setLastModifiedHeader($lastModified) {
- if (empty($lastModified)) {
- return;
- }
- if (is_int($lastModified)) {
- $lastModified = gmdate(DateTime::RFC2822, $lastModified);
- }
- if ($lastModified instanceof DateTime) {
- $lastModified = $lastModified->format(DateTime::RFC2822);
- }
- if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
- trim($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) {
- self::setStatus(self::STATUS_NOT_MODIFIED);
- exit;
- }
- header('Last-Modified: '.$lastModified);
- }
-
- /**
* Sets the content disposition header (with possible workarounds)
* @param string $filename file name
* @param string $type disposition type, either 'attachment' or 'inline'
@@ -210,25 +115,6 @@ class OC_Response {
}
/**
- * Send file as response, checking and setting caching headers
- * @param string $filepath of file to send
- * @deprecated 8.1.0 - Use \OCP\AppFramework\Http\StreamResponse or another AppFramework controller instead
- */
- static public function sendFile($filepath) {
- $fp = fopen($filepath, 'rb');
- if ($fp) {
- self::setLastModifiedHeader(filemtime($filepath));
- self::setETagHeader(md5_file($filepath));
-
- self::setContentLengthHeader(filesize($filepath));
- fpassthru($fp);
- }
- else {
- self::setStatus(self::STATUS_NOT_FOUND);
- }
- }
-
- /**
* This function adds some security related headers to all requests served via base.php
* The implementation of this function has to happen here to ensure that all third-party
* components (e.g. SabreDAV) also benefit from this headers.
diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php
index 7e083b2ba0e..3313ccdec91 100644
--- a/lib/private/legacy/util.php
+++ b/lib/private/legacy/util.php
@@ -679,29 +679,6 @@ class OC_Util {
}
/**
- * formats a timestamp in the "right" way
- *
- * @param int $timestamp
- * @param bool $dateOnly option to omit time from the result
- * @param DateTimeZone|string $timeZone where the given timestamp shall be converted to
- * @return string timestamp
- *
- * @deprecated Use \OC::$server->query('DateTimeFormatter') instead
- */
- public static function formatDate($timestamp, $dateOnly = false, $timeZone = null) {
- if ($timeZone !== null && !$timeZone instanceof \DateTimeZone) {
- $timeZone = new \DateTimeZone($timeZone);
- }
-
- /** @var \OC\DateTimeFormatter $formatter */
- $formatter = \OC::$server->query('DateTimeFormatter');
- if ($dateOnly) {
- return $formatter->formatDate($timestamp, 'long', $timeZone);
- }
- return $formatter->formatDateTime($timestamp, 'long', 'long', $timeZone);
- }
-
- /**
* check if the current server configuration is suitable for ownCloud
*
* @param \OC\SystemConfig $config
diff --git a/lib/public/DB.php b/lib/public/DB.php
index e132c5ff2ec..23ebdceccd0 100644
--- a/lib/public/DB.php
+++ b/lib/public/DB.php
@@ -62,39 +62,6 @@ class DB {
}
/**
- * Insert a row if the matching row does not exists.
- *
- * @param string $table The table name (will replace *PREFIX* with the actual prefix)
- * @param array $input data that should be inserted into the table (column name => value)
- * @param array|null $compare List of values that should be checked for "if not exists"
- * If this is null or an empty array, all keys of $input will be compared
- * @return int number of inserted rows
- * @throws \Doctrine\DBAL\DBALException
- * @deprecated 8.1.0 use insertIfNotExist() of \OCP\IDBConnection - \OC::$server->getDatabaseConnection()
- * @since 5.0.0 - parameter $compare was added in 8.1.0
- *
- */
- public static function insertIfNotExist($table, $input, array $compare = null) {
- return \OC::$server->getDatabaseConnection()->insertIfNotExist($table, $input, $compare);
- }
-
- /**
- * Gets last value of autoincrement
- * @param string $table The optional table name (will replace *PREFIX*) and add sequence suffix
- * @return string
- *
- * \Doctrine\DBAL\Connection lastInsertID()
- *
- * Call this method right after the insert command or other functions may
- * cause trouble!
- * @deprecated 8.1.0 use lastInsertId() of \OCP\IDBConnection - \OC::$server->getDatabaseConnection()
- * @since 4.5.0
- */
- public static function insertid($table=null) {
- return (string)\OC::$server->getDatabaseConnection()->lastInsertId($table);
- }
-
- /**
* Start a transaction
* @deprecated 8.1.0 use beginTransaction() of \OCP\IDBConnection - \OC::$server->getDatabaseConnection()
* @since 4.5.0
@@ -113,27 +80,6 @@ class DB {
}
/**
- * Rollback the database changes done during a transaction that is in progress
- * @deprecated 8.1.0 use rollback() of \OCP\IDBConnection - \OC::$server->getDatabaseConnection()
- * @since 8.0.0
- */
- public static function rollback() {
- \OC::$server->getDatabaseConnection()->rollBack();
- }
-
- /**
- * Check if a result is an error, works with Doctrine
- * @param mixed $result
- * @return bool
- * @deprecated 8.1.0 Doctrine returns false on error (and throws an exception)
- * @since 4.5.0
- */
- public static function isError($result) {
- // Doctrine returns false on error (and throws an exception)
- return $result === false;
- }
-
- /**
* returns the error code and message as a string for logging
* works with DoctrineException
* @return string
diff --git a/lib/public/IHelper.php b/lib/public/IHelper.php
deleted file mode 100644
index 707884b82f8..00000000000
--- a/lib/public/IHelper.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bart Visscher <bartv@thisnet.nl>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @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/>
- *
- */
-
-/**
- * Public interface of ownCloud for apps to use.
- * Helper interface
- *
- */
-
-// use OCP namespace for all classes that are considered public.
-// This means that they should be used by apps instead of the internal ownCloud classes
-namespace OCP;
-
-/**
- * Functions that don't have any specific interface to place
- * @since 6.0.0
- * @deprecated 8.1.0
- */
-interface IHelper {
- /**
- * Gets the content of an URL by using CURL or a fallback if it is not
- * installed
- * @param string $url the url that should be fetched
- * @return string the content of the webpage
- * @since 6.0.0
- * @deprecated 8.1.0 Use \OCP\IServerContainer::getHTTPClientService
- */
- public function getUrlContent($url);
-}
diff --git a/lib/public/IServerContainer.php b/lib/public/IServerContainer.php
index 851a3c7e2bb..a80fc262eef 100644
--- a/lib/public/IServerContainer.php
+++ b/lib/public/IServerContainer.php
@@ -125,7 +125,7 @@ interface IServerContainer extends IContainer {
*
* @return \OCP\Files\Folder
* @since 6.0.0
- * @deprecated since 9.2.0 use IAppData
+ * @deprecated 9.2.0 use IAppData
*/
public function getAppFolder();
@@ -251,14 +251,6 @@ interface IServerContainer extends IContainer {
public function getURLGenerator();
/**
- * Returns the Helper
- *
- * @return \OCP\IHelper
- * @since 6.0.0
- */
- public function getHelper();
-
- /**
* Returns an ICache instance
*
* @return \OCP\ICache
diff --git a/lib/public/Response.php b/lib/public/Response.php
index dbd506d379d..782dcb88626 100644
--- a/lib/public/Response.php
+++ b/lib/public/Response.php
@@ -44,27 +44,6 @@ namespace OCP;
* @deprecated 8.1.0 - Use AppFramework controllers instead and modify the response object
*/
class Response {
- /**
- * Enable response caching by sending correct HTTP headers
- * @param int $cache_time time to cache the response
- * >0 cache time in seconds
- * 0 and <0 enable default browser caching
- * null cache indefinitely
- * @since 4.0.0
- */
- static public function enableCaching( $cache_time = null ) {
- \OC_Response::enableCaching( $cache_time );
- }
-
- /**
- * Checks and set Last-Modified header, when the request matches sends a
- * 'not modified' response
- * @param string $lastModified time when the response was last modified
- * @since 4.0.0
- */
- static public function setLastModifiedHeader( $lastModified ) {
- \OC_Response::setLastModifiedHeader( $lastModified );
- }
/**
* Sets the content disposition header (with possible workarounds)
@@ -84,57 +63,4 @@ class Response {
static public function setContentLengthHeader($length) {
\OC_Response::setContentLengthHeader($length);
}
-
- /**
- * Disable browser caching
- * @see enableCaching with cache_time = 0
- * @since 4.0.0
- * @deprecated 14.0.0 just set the headers
- */
- static public function disableCaching() {
- header('Pragma: public');// enable caching in IE
- header('Expires: 0');
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- }
-
- /**
- * Checks and set ETag header, when the request matches sends a
- * 'not modified' response
- * @param string $etag token to use for modification check
- * @since 4.0.0
- */
- static public function setETagHeader( $etag ) {
- \OC_Response::setETagHeader( $etag );
- }
-
- /**
- * Send file as response, checking and setting caching headers
- * @param string $filepath of file to send
- * @since 4.0.0
- * @deprecated 8.1.0 - Use \OCP\AppFramework\Http\StreamResponse or another AppFramework controller instead
- * @suppress PhanDeprecatedFunction
- */
- static public function sendFile( $filepath ) {
- \OC_Response::sendFile( $filepath );
- }
-
- /**
- * Set response expire time
- * @param string|\DateTime $expires date-time when the response expires
- * string for DateInterval from now
- * DateTime object when to expire response
- * @since 4.0.0
- */
- static public function setExpiresHeader( $expires ) {
- \OC_Response::setExpiresHeader( $expires );
- }
-
- /**
- * Send redirect response
- * @param string $location to redirect to
- * @since 4.0.0
- */
- static public function redirect( $location ) {
- \OC_Response::redirect( $location );
- }
}
diff --git a/lib/public/Util.php b/lib/public/Util.php
index 106107591c3..7e431189775 100644
--- a/lib/public/Util.php
+++ b/lib/public/Util.php
@@ -95,56 +95,6 @@ class Util {
}
/**
- * send an email
- * @param string $toaddress
- * @param string $toname
- * @param string $subject
- * @param string $mailtext
- * @param string $fromaddress
- * @param string $fromname
- * @param int $html
- * @param string $altbody
- * @param string $ccaddress
- * @param string $ccname
- * @param string $bcc
- * @deprecated 8.1.0 Use \OCP\Mail\IMailer instead
- * @since 4.0.0
- */
- public static function sendMail($toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname,
- $html = 0, $altbody = '', $ccaddress = '', $ccname = '', $bcc = '') {
- $mailer = \OC::$server->getMailer();
- $message = $mailer->createMessage();
- $message->setTo([$toaddress => $toname]);
- $message->setSubject($subject);
- $message->setPlainBody($mailtext);
- $message->setFrom([$fromaddress => $fromname]);
- if($html === 1) {
- $message->setHtmlBody($altbody);
- }
-
- if($altbody === '') {
- $message->setHtmlBody($mailtext);
- $message->setPlainBody('');
- } else {
- $message->setHtmlBody($mailtext);
- $message->setPlainBody($altbody);
- }
-
- if(!empty($ccaddress)) {
- if(!empty($ccname)) {
- $message->setCc([$ccaddress => $ccname]);
- } else {
- $message->setCc([$ccaddress]);
- }
- }
- if(!empty($bcc)) {
- $message->setBcc([$bcc]);
- }
-
- $mailer->send($message);
- }
-
- /**
* write a message in the log
* @param string $app
* @param string $message
@@ -244,17 +194,6 @@ class Util {
}
/**
- * check if some encrypted files are stored
- * @return bool
- *
- * @deprecated 8.1.0 No longer required
- * @since 6.0.0
- */
- public static function encryptedFiles() {
- return false;
- }
-
- /**
* Creates an absolute url to the given app and file.
* @param string $app app
* @param string $file file
@@ -322,16 +261,6 @@ class Util {
}
/**
- * Returns the server host, even if the website uses one or more reverse proxy
- * @return string the server host
- * @deprecated 8.1.0 Use \OCP\IRequest::getServerHost
- * @since 4.0.0
- */
- public static function getServerHost() {
- return \OC::$server->getRequest()->getServerHost();
- }
-
- /**
* Returns the server host name without an eventual port number
* @return string the server hostname
* @since 5.0.0
@@ -379,36 +308,6 @@ class Util {
}
/**
- * Returns the server protocol. It respects reverse proxy servers and load balancers
- * @return string the server protocol
- * @deprecated 8.1.0 Use \OCP\IRequest::getServerProtocol
- * @since 4.5.0
- */
- public static function getServerProtocol() {
- return \OC::$server->getRequest()->getServerProtocol();
- }
-
- /**
- * Returns the request uri, even if the website uses one or more reverse proxies
- * @return string the request uri
- * @deprecated 8.1.0 Use \OCP\IRequest::getRequestUri
- * @since 5.0.0
- */
- public static function getRequestUri() {
- return \OC::$server->getRequest()->getRequestUri();
- }
-
- /**
- * Returns the script name, even if the website uses one or more reverse proxies
- * @return string the script name
- * @deprecated 8.1.0 Use \OCP\IRequest::getScriptName
- * @since 5.0.0
- */
- public static function getScriptName() {
- return \OC::$server->getRequest()->getScriptName();
- }
-
- /**
* Creates path to an image
* @param string $app app
* @param string $image image name
diff --git a/settings/Controller/ChangePasswordController.php b/settings/Controller/ChangePasswordController.php
index 208178d567d..7dbdbac0239 100644
--- a/settings/Controller/ChangePasswordController.php
+++ b/settings/Controller/ChangePasswordController.php
@@ -1,5 +1,7 @@
<?php
-declare(strict_types=1);
+// FIXME: disabled for now to be able to inject IGroupManager and also use
+// getSubAdmin()
+//declare(strict_types=1);
/**
*
*
@@ -27,12 +29,12 @@ declare(strict_types=1);
*/
namespace OC\Settings\Controller;
-use OC\Group\Manager as GroupManager;
use OC\HintException;
use OC\User\Session;
use OCP\App\IAppManager;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\JSONResponse;
+use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IRequest;
use OCP\IUser;
@@ -50,7 +52,7 @@ class ChangePasswordController extends Controller {
/** @var IL10N */
private $l;
- /** @var GroupManager */
+ /** @var IGroupManager */
private $groupManager;
/** @var Session */
@@ -64,7 +66,7 @@ class ChangePasswordController extends Controller {
string $userId,
IUserManager $userManager,
IUserSession $userSession,
- GroupManager $groupManager,
+ IGroupManager $groupManager,
IAppManager $appManager,
IL10N $l) {
parent::__construct($appName, $request);
diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php
index df89c2ec1a7..956403f143c 100644
--- a/settings/Controller/UsersController.php
+++ b/settings/Controller/UsersController.php
@@ -1,5 +1,7 @@
<?php
-declare(strict_types=1);
+// FIXME: disabled for now to be able to inject IGroupManager and also use
+// getSubAdmin()
+//declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -40,7 +42,6 @@ namespace OC\Settings\Controller;
use OC\Accounts\AccountManager;
use OC\AppFramework\Http;
use OC\ForbiddenException;
-use OC\Group\Manager as GroupManager;
use OC\HintException;
use OC\Settings\Mailer\NewUserMailHelper;
use OC\Security\IdentityProof\Manager;
@@ -52,6 +53,7 @@ use OCP\Files\Config\IUserMountCache;
use OCP\Encryption\IEncryptionModule;
use OCP\Encryption\IManager;
use OCP\IConfig;
+use OCP\IGroupManager;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
@@ -77,7 +79,7 @@ class UsersController extends Controller {
private $isAdmin;
/** @var IUserManager */
private $userManager;
- /** @var GroupManager */
+ /** @var IGroupManager */
private $groupManager;
/** @var IConfig */
private $config;
@@ -113,7 +115,7 @@ class UsersController extends Controller {
public function __construct(string $appName,
IRequest $request,
IUserManager $userManager,
- GroupManager $groupManager,
+ IGroupManager $groupManager,
IUserSession $userSession,
IConfig $config,
bool $isAdmin,
diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js
index 1663f73e5e6..a57db496539 100644
--- a/settings/l10n/en_GB.js
+++ b/settings/l10n/en_GB.js
@@ -104,6 +104,8 @@ OC.L10N.register(
"Error: Could not disable broken app" : "Error: Could not disable broken app",
"Error while disabling broken app" : "Error whilst disabling broken app",
"App up to date" : "App up to date",
+ "Updating …" : "Updating …",
+ "Could not update app" : "Could not update app",
"Updated" : "Updated",
"Removing …" : "Removing …",
"Could not remove app" : "Could not remove app",
diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json
index d82b8341927..9cffef4236e 100644
--- a/settings/l10n/en_GB.json
+++ b/settings/l10n/en_GB.json
@@ -102,6 +102,8 @@
"Error: Could not disable broken app" : "Error: Could not disable broken app",
"Error while disabling broken app" : "Error whilst disabling broken app",
"App up to date" : "App up to date",
+ "Updating …" : "Updating …",
+ "Could not update app" : "Could not update app",
"Updated" : "Updated",
"Removing …" : "Removing …",
"Could not remove app" : "Could not remove app",
diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js
index 6ccf59c3ee3..4f792aa724c 100644
--- a/settings/l10n/es_MX.js
+++ b/settings/l10n/es_MX.js
@@ -104,6 +104,8 @@ OC.L10N.register(
"Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota",
"Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota",
"App up to date" : "La aplicación está actualizada",
+ "Updating …" : "Actualizando ...",
+ "Could not update app" : "No fue posible actualizar la aplicación",
"Updated" : "Actualizado",
"Removing …" : "Eliminando ...",
"Could not remove app" : "No fue posible eliminar la aplicación",
diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json
index d997697368f..ef41efc2a43 100644
--- a/settings/l10n/es_MX.json
+++ b/settings/l10n/es_MX.json
@@ -102,6 +102,8 @@
"Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota",
"Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota",
"App up to date" : "La aplicación está actualizada",
+ "Updating …" : "Actualizando ...",
+ "Could not update app" : "No fue posible actualizar la aplicación",
"Updated" : "Actualizado",
"Removing …" : "Eliminando ...",
"Could not remove app" : "No fue posible eliminar la aplicación",
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index 8f0402fa539..f2380be5594 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -75,6 +75,7 @@ OC.L10N.register(
"Set your password" : "Klik hier en stel je eigen wachtwoord in.",
"Go to %s" : "Ga naar %s",
"Install Client" : "Klik hier en installeer een client op telefoon/tablet of pc.",
+ "Logged in user must be a subadmin" : "Ingelogde gebruiker moet een subbeheerder zijn",
"Password confirmation is required" : "Wachtwoordbevestiging vereist",
"Couldn't remove app." : "Kon app niet verwijderen.",
"Couldn't update app." : "Kon de app niet bijwerken.",
@@ -103,6 +104,8 @@ OC.L10N.register(
"Error: Could not disable broken app" : "Fout: Kan de beschadigde app niet uitschakelen",
"Error while disabling broken app" : "Fout bij het uitschakelen van de beschadigde app",
"App up to date" : "App actueel",
+ "Updating …" : "Bijwerken....",
+ "Could not update app" : "Kon de app niet bijwerken.",
"Updated" : "Bijgewerkt",
"Removing …" : "Verwijderen ...",
"Could not remove app" : "Kon de app niet verwijderen",
@@ -356,6 +359,7 @@ OC.L10N.register(
"Show user backend" : "Toon backend gebruiker",
"Show last login" : "Toon laatste inlog",
"When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Als het wachtwoord van de nieuwe gebruiker blanco blijft wordt een activeringsmailt met link naar de gebruiker gestuurd om het wachtwoord in te stellen.",
+ "Add user" : "Toevoegen gebruiker",
"Everyone" : "Iedereen",
"Admins" : "Beheerders",
"Disabled" : "Uitgeschakeld",
@@ -364,6 +368,7 @@ OC.L10N.register(
"Unlimited" : "Ongelimiteerd",
"Other" : "Anders",
"Group admin for" : "Groepsbeheerder voor",
+ "Recovery password" : "Herstelwachtwoord",
"Quota" : "Limieten",
"Storage location" : "Opslag locatie",
"User backend" : "Backend gebruiker",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index 489dbe5538e..6dd8e81c1d8 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -73,6 +73,7 @@
"Set your password" : "Klik hier en stel je eigen wachtwoord in.",
"Go to %s" : "Ga naar %s",
"Install Client" : "Klik hier en installeer een client op telefoon/tablet of pc.",
+ "Logged in user must be a subadmin" : "Ingelogde gebruiker moet een subbeheerder zijn",
"Password confirmation is required" : "Wachtwoordbevestiging vereist",
"Couldn't remove app." : "Kon app niet verwijderen.",
"Couldn't update app." : "Kon de app niet bijwerken.",
@@ -101,6 +102,8 @@
"Error: Could not disable broken app" : "Fout: Kan de beschadigde app niet uitschakelen",
"Error while disabling broken app" : "Fout bij het uitschakelen van de beschadigde app",
"App up to date" : "App actueel",
+ "Updating …" : "Bijwerken....",
+ "Could not update app" : "Kon de app niet bijwerken.",
"Updated" : "Bijgewerkt",
"Removing …" : "Verwijderen ...",
"Could not remove app" : "Kon de app niet verwijderen",
@@ -354,6 +357,7 @@
"Show user backend" : "Toon backend gebruiker",
"Show last login" : "Toon laatste inlog",
"When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Als het wachtwoord van de nieuwe gebruiker blanco blijft wordt een activeringsmailt met link naar de gebruiker gestuurd om het wachtwoord in te stellen.",
+ "Add user" : "Toevoegen gebruiker",
"Everyone" : "Iedereen",
"Admins" : "Beheerders",
"Disabled" : "Uitgeschakeld",
@@ -362,6 +366,7 @@
"Unlimited" : "Ongelimiteerd",
"Other" : "Anders",
"Group admin for" : "Groepsbeheerder voor",
+ "Recovery password" : "Herstelwachtwoord",
"Quota" : "Limieten",
"Storage location" : "Opslag locatie",
"User backend" : "Backend gebruiker",
diff --git a/settings/templates/settings/admin/server.php b/settings/templates/settings/admin/server.php
index 4350a7105c8..d467577f610 100644
--- a/settings/templates/settings/admin/server.php
+++ b/settings/templates/settings/admin/server.php
@@ -159,7 +159,9 @@
<p class="cronlog inlineblock">
<?php if ($_['lastcron'] !== false):
$relative_time = relative_modified_date($_['lastcron']);
- $absolute_time = OC_Util::formatDate($_['lastcron']);
+
+ $formatter = \OC::$server->getDateTimeFormatter();
+ $absolute_time = $formatter->formatDateTime($_['lastcron'], 'long', 'long');
if (time() - $_['lastcron'] <= 3600): ?>
<span class="status success"></span>
<span class="crondate" title="<?php p($absolute_time);?>">
diff --git a/tests/lib/APITest.php b/tests/lib/APITest.php
index b1ac8fbb24f..bf6902fde65 100644
--- a/tests/lib/APITest.php
+++ b/tests/lib/APITest.php
@@ -83,119 +83,4 @@ class APITest extends \Test\TestCase {
$this->assertEquals($expected, $this->invokePrivate(new \OC_API, 'isV2', [$request]));
}
-
- function dataProviderTestOneResult() {
- return [
- [100, true],
- [101, false],
- [997, false],
- ];
- }
-
- /**
- * @dataProvider dataProviderTestOneResult
- *
- * @param $statusCode
- * @param $succeeded
- */
- public function testOneResult($statusCode, $succeeded) {
- // Setup some data arrays
- $data1 = [
- 'users' => [
- 'tom' => [
- 'key' => 'value',
- ],
- 'frank' => [
- 'key' => 'value',
- ],
- ]];
-
- // Test merging one success result
- $response = $this->buildResponse(true, $data1, $statusCode);
- $result = \OC_API::mergeResponses([$response]);
- $this->assertEquals($response['response'], $result);
- $this->checkResult($result, $succeeded);
- }
-
- function dataProviderTestMergeResponses() {
- return [
- // Two shipped success results
- [true, 100, true, 100, true],
- // Two shipped results, one success and one failure
- [true, 100, true, 998, false],
- // Two shipped results, both failure
- [true, 997, true, 998, false],
- // Two third party success results
- [false, 100, false, 100, true],
- // Two third party results, one success and one failure
- [false, 100, false, 998, false],
- // Two third party results, both failure
- [false, 997, false, 998, false],
- // One of each, both success
- [false, 100, true, 100, true],
- [true, 100, false, 100, true],
- // One of each, both failure
- [false, 997, true, 998, false],
- // One of each, shipped success
- [false, 997, true, 100, true],
- // One of each, third party success
- [false, 100, true, 998, false],
- ];
- }
- /**
- * @dataProvider dataProviderTestMergeResponses
- *
- * Test the merging of multiple responses
- * @param $statusCode1
- * @param $statusCode2
- * @param $succeeded
- */
- public function testMultipleMergeResponses($shipped1, $statusCode1, $shipped2, $statusCode2, $succeeded){
- // Tests that app responses are merged correctly
- // Setup some data arrays
- $data1 = array(
- 'users' => array(
- 'tom' => array(
- 'key' => 'value',
- ),
- 'frank' => array(
- 'key' => 'value',
- ),
- ));
-
- $data2 = array(
- 'users' => array(
- 'tom' => array(
- 'key' => 'newvalue',
- ),
- 'jan' => array(
- 'key' => 'value',
- ),
- ));
-
- // Two shipped success results
- $result = \OC_API::mergeResponses(array(
- $this->buildResponse($shipped1, $data1, $statusCode1, "message1"),
- $this->buildResponse($shipped2, $data2, $statusCode2, "message2"),
- ));
- $this->checkResult($result, $succeeded);
- $resultData = $result->getData();
- $resultMeta = $result->getMeta();
- $resultHeaders = $result->getHeaders();
- $resultStatusCode = $result->getStatusCode();
-
- $this->assertArrayHasKey('jan', $resultData['users']);
- $this->assertArrayHasKey('KEY', $resultHeaders);
-
- // check if the returned status message matches the selected status code
- if ($resultStatusCode === 997) {
- $this->assertEquals('message1', $resultMeta['message']);
- } elseif ($resultStatusCode === 998) {
- $this->assertEquals('message2', $resultMeta['message']);
- } elseif ($resultStatusCode === 100) {
- $this->assertEquals(null, $resultMeta['message']);
- }
-
- }
-
}
diff --git a/tests/lib/DB/ConnectionTest.php b/tests/lib/DB/ConnectionTest.php
index 3a4a80bdbd9..62b168fbb53 100644
--- a/tests/lib/DB/ConnectionTest.php
+++ b/tests/lib/DB/ConnectionTest.php
@@ -198,4 +198,142 @@ class ConnectionTest extends \Test\TestCase {
$this->addToAssertionCount(1);
}
+
+ public function testInsertIfNotExist() {
+ $this->makeTestTable();
+ $categoryEntries = [
+ ['user' => 'test', 'category' => 'Family', 'expectedResult' => 1],
+ ['user' => 'test', 'category' => 'Friends', 'expectedResult' => 1],
+ ['user' => 'test', 'category' => 'Coworkers', 'expectedResult' => 1],
+ ['user' => 'test', 'category' => 'Coworkers', 'expectedResult' => 0],
+ ['user' => 'test', 'category' => 'School', 'expectedResult' => 1],
+ ['user' => 'test2', 'category' => 'Coworkers2', 'expectedResult' => 1],
+ ['user' => 'test2', 'category' => 'Coworkers2', 'expectedResult' => 0],
+ ['user' => 'test2', 'category' => 'School2', 'expectedResult' => 1],
+ ['user' => 'test2', 'category' => 'Coworkers', 'expectedResult' => 1],
+ ];
+
+ foreach($categoryEntries as $entry) {
+ $result = $this->connection->insertIfNotExist('*PREFIX*table',
+ [
+ 'textfield' => $entry['user'],
+ 'clobfield' => $entry['category'],
+ ]);
+ $this->assertEquals($entry['expectedResult'], $result);
+ }
+
+ $query = $this->connection->prepare('SELECT * FROM `*PREFIX*table`');
+ $result = $query->execute();
+ $this->assertTrue((bool)$result);
+ $this->assertEquals(7, count($query->fetchAll()));
+ }
+
+ public function testInsertIfNotExistNull() {
+ $this->makeTestTable();
+ $categoryEntries = [
+ ['addressbookid' => 123, 'fullname' => null, 'expectedResult' => 1],
+ ['addressbookid' => 123, 'fullname' => null, 'expectedResult' => 0],
+ ['addressbookid' => 123, 'fullname' => 'test', 'expectedResult' => 1],
+ ];
+
+ foreach($categoryEntries as $entry) {
+ $result = $this->connection->insertIfNotExist('*PREFIX*table',
+ [
+ 'integerfield_default' => $entry['addressbookid'],
+ 'clobfield' => $entry['fullname'],
+ ]);
+ $this->assertEquals($entry['expectedResult'], $result);
+ }
+
+ $query = $this->connection->prepare('SELECT * FROM `*PREFIX*table`');
+ $result = $query->execute();
+ $this->assertTrue((bool)$result);
+ $this->assertEquals(2, count($query->fetchAll()));
+ }
+
+ public function testInsertIfNotExistDonTOverwrite() {
+ $this->makeTestTable();
+ $fullName = 'fullname test';
+ $uri = 'uri_1';
+
+ // Normal test to have same known data inserted.
+ $query = $this->connection->prepare('INSERT INTO `*PREFIX*table` (`textfield`, `clobfield`) VALUES (?, ?)');
+ $result = $query->execute([$fullName, $uri]);
+ $this->assertEquals(1, $result);
+ $query = $this->connection->prepare('SELECT `textfield`, `clobfield` FROM `*PREFIX*table` WHERE `clobfield` = ?');
+ $result = $query->execute([$uri]);
+ $this->assertTrue($result);
+ $rowset = $query->fetchAll();
+ $this->assertEquals(1, count($rowset));
+ $this->assertArrayHasKey('textfield', $rowset[0]);
+ $this->assertEquals($fullName, $rowset[0]['textfield']);
+
+ // Try to insert a new row
+ $result = $this->connection->insertIfNotExist('*PREFIX*table',
+ [
+ 'textfield' => $fullName,
+ 'clobfield' => $uri,
+ ]);
+ $this->assertEquals(0, $result);
+
+ $query = $this->connection->prepare('SELECT `textfield`, `clobfield` FROM `*PREFIX*table` WHERE `clobfield` = ?');
+ $result = $query->execute([$uri]);
+ $this->assertTrue($result);
+ // Test that previously inserted data isn't overwritten
+ // And that a new row hasn't been inserted.
+ $rowset = $query->fetchAll();
+ $this->assertEquals(1, count($rowset));
+ $this->assertArrayHasKey('textfield', $rowset[0]);
+ $this->assertEquals($fullName, $rowset[0]['textfield']);
+ }
+
+ public function testInsertIfNotExistsViolating() {
+ $this->makeTestTable();
+ $result = $this->connection->insertIfNotExist('*PREFIX*table',
+ [
+ 'textfield' => md5('welcome.txt'),
+ 'clobfield' => $this->getUniqueID()
+ ]);
+ $this->assertEquals(1, $result);
+
+ $result = $this->connection->insertIfNotExist('*PREFIX*table',
+ [
+ 'textfield' => md5('welcome.txt'),
+ 'clobfield' => $this->getUniqueID()
+ ],['textfield']);
+
+ $this->assertEquals(0, $result);
+ }
+
+ public function insertIfNotExistsViolatingThrows() {
+ return [
+ [null],
+ [['clobfield']],
+ ];
+ }
+
+ /**
+ * @dataProvider insertIfNotExistsViolatingThrows
+ * @expectedException \Doctrine\DBAL\Exception\UniqueConstraintViolationException
+ *
+ * @param array $compareKeys
+ */
+ public function testInsertIfNotExistsViolatingThrows($compareKeys) {
+ $this->makeTestTable();
+ $result = $this->connection->insertIfNotExist('*PREFIX*table',
+ [
+ 'integerfield' => 1,
+ 'clobfield' => $this->getUniqueID()
+ ]);
+ $this->assertEquals(1, $result);
+
+ $result = $this->connection->insertIfNotExist('*PREFIX*table',
+ [
+ 'integerfield' => 1,
+ 'clobfield' => $this->getUniqueID()
+ ], $compareKeys);
+
+ $this->assertEquals(0, $result);
+ }
+
}
diff --git a/tests/lib/DB/LegacyDBTest.php b/tests/lib/DB/LegacyDBTest.php
index 3cf40228225..578d28139bc 100644
--- a/tests/lib/DB/LegacyDBTest.php
+++ b/tests/lib/DB/LegacyDBTest.php
@@ -134,140 +134,6 @@ class LegacyDBTest extends \Test\TestCase {
// now we can check if the two ids are in correct order
$this->assertGreaterThan($id1, $id2);
}
-
- public function testinsertIfNotExist() {
- $categoryEntries = array(
- array('user' => 'test', 'type' => 'contact', 'category' => 'Family', 'expectedResult' => 1),
- array('user' => 'test', 'type' => 'contact', 'category' => 'Friends', 'expectedResult' => 1),
- array('user' => 'test', 'type' => 'contact', 'category' => 'Coworkers', 'expectedResult' => 1),
- array('user' => 'test', 'type' => 'contact', 'category' => 'Coworkers', 'expectedResult' => 0),
- array('user' => 'test', 'type' => 'contact', 'category' => 'School', 'expectedResult' => 1),
- );
-
- foreach($categoryEntries as $entry) {
- $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table3,
- array(
- 'uid' => $entry['user'],
- 'type' => $entry['type'],
- 'category' => $entry['category'],
- ));
- $this->assertEquals($entry['expectedResult'], $result);
- }
-
- $query = OC_DB::prepare('SELECT * FROM `*PREFIX*'.$this->table3.'`');
- $result = $query->execute();
- $this->assertTrue((bool)$result);
- $this->assertEquals(4, count($result->fetchAll()));
- }
-
- public function testInsertIfNotExistNull() {
- $categoryEntries = array(
- array('addressbookid' => 123, 'fullname' => null, 'expectedResult' => 1),
- array('addressbookid' => 123, 'fullname' => null, 'expectedResult' => 0),
- array('addressbookid' => 123, 'fullname' => 'test', 'expectedResult' => 1),
- );
-
- foreach($categoryEntries as $entry) {
- $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table2,
- array(
- 'addressbookid' => $entry['addressbookid'],
- 'fullname' => $entry['fullname'],
- ));
- $this->assertEquals($entry['expectedResult'], $result);
- }
-
- $query = OC_DB::prepare('SELECT * FROM `*PREFIX*'.$this->table2.'`');
- $result = $query->execute();
- $this->assertTrue((bool)$result);
- $this->assertEquals(2, count($result->fetchAll()));
- }
-
- public function testInsertIfNotExistDonTOverwrite() {
- $fullName = 'fullname test';
- $uri = 'uri_1';
- $carddata = 'This is a vCard';
-
- // Normal test to have same known data inserted.
- $query = OC_DB::prepare('INSERT INTO `*PREFIX*'.$this->table2.'` (`fullname`, `uri`, `carddata`) VALUES (?, ?, ?)');
- $result = $query->execute(array($fullName, $uri, $carddata));
- $this->assertEquals(1, $result);
- $query = OC_DB::prepare('SELECT `fullname`, `uri`, `carddata` FROM `*PREFIX*'.$this->table2.'` WHERE `uri` = ?');
- $result = $query->execute(array($uri));
- $this->assertTrue((bool)$result);
- $rowset = $result->fetchAll();
- $this->assertEquals(1, count($rowset));
- $this->assertArrayHasKey('carddata', $rowset[0]);
- $this->assertEquals($carddata, $rowset[0]['carddata']);
-
- // Try to insert a new row
- $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table2,
- array(
- 'fullname' => $fullName,
- 'uri' => $uri,
- ));
- $this->assertEquals(0, $result);
-
- $query = OC_DB::prepare('SELECT `fullname`, `uri`, `carddata` FROM `*PREFIX*'.$this->table2.'` WHERE `uri` = ?');
- $result = $query->execute(array($uri));
- $this->assertTrue((bool)$result);
- // Test that previously inserted data isn't overwritten
- // And that a new row hasn't been inserted.
- $rowset = $result->fetchAll();
- $this->assertEquals(1, count($rowset));
- $this->assertArrayHasKey('carddata', $rowset[0]);
- $this->assertEquals($carddata, $rowset[0]['carddata']);
- }
-
- public function testInsertIfNotExistsViolating() {
- $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table5,
- array(
- 'storage' => 1,
- 'path_hash' => md5('welcome.txt'),
- 'etag' => $this->getUniqueID()
- ));
- $this->assertEquals(1, $result);
-
- $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table5,
- array(
- 'storage' => 1,
- 'path_hash' => md5('welcome.txt'),
- 'etag' => $this->getUniqueID()
- ),['storage', 'path_hash']);
-
- $this->assertEquals(0, $result);
- }
-
- public function insertIfNotExistsViolatingThrows() {
- return [
- [null],
- [['etag']],
- ];
- }
-
- /**
- * @dataProvider insertIfNotExistsViolatingThrows
- * @expectedException \Doctrine\DBAL\Exception\UniqueConstraintViolationException
- *
- * @param array $compareKeys
- */
- public function testInsertIfNotExistsViolatingThrows($compareKeys) {
- $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table5,
- array(
- 'storage' => 1,
- 'path_hash' => md5('welcome.txt'),
- 'etag' => $this->getUniqueID()
- ));
- $this->assertEquals(1, $result);
-
- $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table5,
- array(
- 'storage' => 1,
- 'path_hash' => md5('welcome.txt'),
- 'etag' => $this->getUniqueID()
- ), $compareKeys);
-
- $this->assertEquals(0, $result);
- }
public function testUtf8Data() {
$table = "*PREFIX*{$this->table2}";
diff --git a/tests/lib/DB/MDB2SchemaReaderTest.php b/tests/lib/DB/MDB2SchemaReaderTest.php
index 3daf0dd7589..3b44f15f756 100644
--- a/tests/lib/DB/MDB2SchemaReaderTest.php
+++ b/tests/lib/DB/MDB2SchemaReaderTest.php
@@ -54,7 +54,7 @@ class MDB2SchemaReaderTest extends TestCase {
$this->assertCount(8, $table->getColumns());
$this->assertEquals(4, $table->getColumn('integerfield')->getLength());
- $this->assertFalse($table->getColumn('integerfield')->getAutoincrement());
+ $this->assertTrue($table->getColumn('integerfield')->getAutoincrement());
$this->assertEquals(0, $table->getColumn('integerfield')->getDefault());
$this->assertTrue($table->getColumn('integerfield')->getNotnull());
$this->assertInstanceOf('Doctrine\DBAL\Types\IntegerType', $table->getColumn('integerfield')->getType());
diff --git a/tests/lib/DB/testschema.xml b/tests/lib/DB/testschema.xml
index 8e6dc1a1d60..5f449c936d9 100644
--- a/tests/lib/DB/testschema.xml
+++ b/tests/lib/DB/testschema.xml
@@ -19,6 +19,7 @@
<notnull>true</notnull>
<primary>true</primary>
<length>4</length>
+ <autoincrement>1</autoincrement>
</field>
<field>
<name>integerfield_default</name>
diff --git a/tests/lib/ServerTest.php b/tests/lib/ServerTest.php
index 9c375dd654e..63642c997ab 100644
--- a/tests/lib/ServerTest.php
+++ b/tests/lib/ServerTest.php
@@ -53,8 +53,6 @@ class ServerTest extends \Test\TestCase {
['AppConfig', '\OC\AppConfig'],
['AppConfig', '\OCP\IAppConfig'],
['AppFetcher', AppFetcher::class],
- ['AppHelper', '\OC\AppHelper'],
- ['AppHelper', '\OCP\IHelper'],
['AppManager', '\OC\App\AppManager'],
['AppManager', '\OCP\App\IAppManager'],
['AsyncCommandBus', '\OC\Command\AsyncBus'],
diff --git a/tests/lib/UtilTest.php b/tests/lib/UtilTest.php
index 037736bf00f..18d065c68d6 100644
--- a/tests/lib/UtilTest.php
+++ b/tests/lib/UtilTest.php
@@ -38,70 +38,6 @@ class UtilTest extends \Test\TestCase {
$this->assertTrue(is_string($edition));
}
- /**
- * @group DB
- */
- function testFormatDate() {
- date_default_timezone_set("UTC");
-
- $result = OC_Util::formatDate(1350129205);
- $expected = 'October 13, 2012 at 11:53:25 AM GMT+0';
- $this->assertEquals($expected, $result);
-
- $result = OC_Util::formatDate(1102831200, true);
- $expected = 'December 12, 2004';
- $this->assertEquals($expected, $result);
- }
-
- /**
- * @group DB
- */
- function testFormatDateWithTZ() {
- date_default_timezone_set("UTC");
-
- $result = OC_Util::formatDate(1350129205, false, 'Europe/Berlin');
- $expected = 'October 13, 2012 at 1:53:25 PM GMT+2';
- $this->assertEquals($expected, $result);
- }
-
- /**
- * @expectedException \Exception
- */
- function testFormatDateWithInvalidTZ() {
- OC_Util::formatDate(1350129205, false, 'Mordor/Barad-dûr');
- }
-
- public function formatDateWithTZFromSessionData() {
- return array(
- array(3, 'October 13, 2012 at 2:53:25 PM GMT+3', 'Etc/GMT-3'),
- array(15, 'October 13, 2012 at 11:53:25 AM GMT+0', 'UTC'),
- array(-13, 'October 13, 2012 at 11:53:25 AM GMT+0', 'UTC'),
- array(9.5, 'October 13, 2012 at 9:23:25 PM GMT+9:30', 'Australia/Darwin'),
- array(-4.5, 'October 13, 2012 at 7:23:25 AM GMT-4:30', 'America/Caracas'),
- array(15.5, 'October 13, 2012 at 11:53:25 AM GMT+0', 'UTC'),
- );
- }
-
- /**
- * @dataProvider formatDateWithTZFromSessionData
- * @group DB
- */
- function testFormatDateWithTZFromSession($offset, $expected, $expectedTimeZone) {
- date_default_timezone_set("UTC");
-
- \OC::$server->getSession()->set('timezone', $offset);
-
- $selectedTimeZone = \OC::$server->getDateTimeZone()->getTimeZone(1350129205);
- $this->assertEquals($expectedTimeZone, $selectedTimeZone->getName());
- $newDateTimeFormatter = new \OC\DateTimeFormatter($selectedTimeZone, \OC::$server->getL10N('lib', 'en'));
- $this->overwriteService('DateTimeFormatter', $newDateTimeFormatter);
-
- $result = OC_Util::formatDate(1350129205, false);
- $this->assertEquals($expected, $result);
-
- $this->restoreService('DateTimeFormatter');
- }
-
function testSanitizeHTML() {
$badArray = [
'While it is unusual to pass an array',