summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.htaccess4
-rw-r--r--apps/files_encryption/appinfo/register_command.php12
-rw-r--r--apps/files_encryption/appinfo/version2
-rw-r--r--apps/files_encryption/command/migratekeys.php74
-rw-r--r--apps/files_encryption/lib/migration.php50
-rw-r--r--apps/files_external/css/settings.css8
-rw-r--r--apps/files_sharing/l10n/da.js2
-rw-r--r--apps/files_sharing/l10n/da.json2
-rw-r--r--apps/files_sharing/l10n/de.js2
-rw-r--r--apps/files_sharing/l10n/de.json2
-rw-r--r--apps/files_sharing/l10n/de_DE.js2
-rw-r--r--apps/files_sharing/l10n/de_DE.json2
-rw-r--r--apps/files_sharing/l10n/es.js2
-rw-r--r--apps/files_sharing/l10n/es.json2
-rw-r--r--apps/files_sharing/l10n/fi_FI.js2
-rw-r--r--apps/files_sharing/l10n/fi_FI.json2
-rw-r--r--apps/files_sharing/l10n/fr.js2
-rw-r--r--apps/files_sharing/l10n/fr.json2
-rw-r--r--apps/files_sharing/l10n/gl.js2
-rw-r--r--apps/files_sharing/l10n/gl.json2
-rw-r--r--apps/files_sharing/l10n/it.js2
-rw-r--r--apps/files_sharing/l10n/it.json2
-rw-r--r--apps/files_sharing/l10n/nl.js2
-rw-r--r--apps/files_sharing/l10n/nl.json2
-rw-r--r--apps/files_sharing/l10n/pt_BR.js2
-rw-r--r--apps/files_sharing/l10n/pt_BR.json2
-rw-r--r--apps/files_sharing/l10n/ru.js2
-rw-r--r--apps/files_sharing/l10n/ru.json2
-rw-r--r--apps/files_sharing/l10n/sk_SK.js2
-rw-r--r--apps/files_sharing/l10n/sk_SK.json2
-rw-r--r--apps/files_trashbin/lib/trashbin.php3
-rw-r--r--apps/provisioning_api/appinfo/info.xml4
-rw-r--r--config/.htaccess4
-rw-r--r--lib/private/connector/sabre/file.php6
-rw-r--r--lib/private/files/cache/cache.php3
-rw-r--r--lib/private/files/cache/homecache.php1
-rw-r--r--lib/private/files/filesystem.php2
-rw-r--r--lib/private/files/node/root.php2
-rw-r--r--lib/private/files/view.php24
-rw-r--r--lib/private/search/result/file.php2
-rw-r--r--lib/private/setup.php4
-rw-r--r--lib/private/share/share.php1
-rw-r--r--settings/l10n/da.js1
-rw-r--r--settings/l10n/da.json1
-rw-r--r--settings/l10n/de.js3
-rw-r--r--settings/l10n/de.json3
-rw-r--r--settings/l10n/de_DE.js7
-rw-r--r--settings/l10n/de_DE.json7
-rw-r--r--settings/l10n/es.js1
-rw-r--r--settings/l10n/es.json1
-rw-r--r--settings/l10n/fi_FI.js1
-rw-r--r--settings/l10n/fi_FI.json1
-rw-r--r--settings/l10n/fr.js1
-rw-r--r--settings/l10n/fr.json1
-rw-r--r--settings/l10n/gl.js1
-rw-r--r--settings/l10n/gl.json1
-rw-r--r--settings/l10n/it.js1
-rw-r--r--settings/l10n/it.json1
-rw-r--r--settings/l10n/nl.js1
-rw-r--r--settings/l10n/nl.json1
-rw-r--r--settings/l10n/pt_BR.js1
-rw-r--r--settings/l10n/pt_BR.json1
-rw-r--r--settings/l10n/ru.js1
-rw-r--r--settings/l10n/ru.json1
-rw-r--r--settings/l10n/sk_SK.js1
-rw-r--r--settings/l10n/sk_SK.json1
-rw-r--r--tests/lib/connector/sabre/file.php25
-rw-r--r--tests/lib/files/node/integration.php4
-rw-r--r--tests/lib/files/view.php16
69 files changed, 284 insertions, 55 deletions
diff --git a/.htaccess b/.htaccess
index 962e969d59c..78e6255c878 100644
--- a/.htaccess
+++ b/.htaccess
@@ -13,7 +13,7 @@ php_value post_max_size 513M
php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value always_populate_raw_post_data -1
-<IfModule env_module>
+<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
@@ -34,7 +34,7 @@ RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
</IfModule>
-<IfModule dir_module>
+<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
diff --git a/apps/files_encryption/appinfo/register_command.php b/apps/files_encryption/appinfo/register_command.php
new file mode 100644
index 00000000000..dfb7f5c375a
--- /dev/null
+++ b/apps/files_encryption/appinfo/register_command.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Copyright (c) 2015 Thomas Müller <deepdiver@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+use OCA\Files_Encryption\Command\MigrateKeys;
+
+$userManager = OC::$server->getUserManager();
+$application->add(new MigrateKeys($userManager));
diff --git a/apps/files_encryption/appinfo/version b/apps/files_encryption/appinfo/version
index faef31a4357..39e898a4f95 100644
--- a/apps/files_encryption/appinfo/version
+++ b/apps/files_encryption/appinfo/version
@@ -1 +1 @@
-0.7.0
+0.7.1
diff --git a/apps/files_encryption/command/migratekeys.php b/apps/files_encryption/command/migratekeys.php
new file mode 100644
index 00000000000..200d7367da6
--- /dev/null
+++ b/apps/files_encryption/command/migratekeys.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Copyright (c) 2015 Thomas Müller <thomas.mueller@tmit.eu>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCA\Files_Encryption\Command;
+
+use OCA\Files_Encryption\Migration;
+use OCP\IUserBackend;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class MigrateKeys extends Command {
+
+ /** @var \OC\User\Manager */
+ private $userManager;
+
+ public function __construct(\OC\User\Manager $userManager) {
+ $this->userManager = $userManager;
+ parent::__construct();
+ }
+
+ protected function configure() {
+ $this
+ ->setName('encryption:migrate-keys')
+ ->setDescription('migrate encryption keys')
+ ->addArgument(
+ 'user_id',
+ InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
+ 'will migrate keys of the given user(s)'
+ );
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+
+ // perform system reorganization
+ $migration = new Migration();
+ $output->writeln("Reorganize system folder structure");
+ $migration->reorganizeSystemFolderStructure();
+
+ $users = $input->getArgument('user_id');
+ if (!empty($users)) {
+ foreach ($users as $user) {
+ if ($this->userManager->userExists($user)) {
+ $output->writeln("Migrating keys <info>$user</info>");
+ $migration->reorganizeFolderStructureForUser($user);
+ } else {
+ $output->writeln("<error>Unknown user $user</error>");
+ }
+ }
+ } else {
+ foreach($this->userManager->getBackends() as $backend) {
+ $name = get_class($backend);
+
+ if ($backend instanceof IUserBackend) {
+ $name = $backend->getBackendName();
+ }
+
+ $output->writeln("Migrating keys for users on backend <info>$name</info>");
+ $users = $backend->getUsers();
+ foreach ($users as $user) {
+ $output->writeln(" <info>$user</info>");
+ $migration->reorganizeFolderStructureForUser($user);
+ }
+ }
+ }
+
+ }
+}
diff --git a/apps/files_encryption/lib/migration.php b/apps/files_encryption/lib/migration.php
index 1bab1dfe4a5..cf5552f84ac 100644
--- a/apps/files_encryption/lib/migration.php
+++ b/apps/files_encryption/lib/migration.php
@@ -40,6 +40,15 @@ class Migration {
}
public function reorganizeFolderStructure() {
+ $this->reorganizeSystemFolderStructure();
+
+ $users = \OCP\User::getUsers();
+ foreach ($users as $user) {
+ $this->reorganizeFolderStructureForUser($user);
+ }
+ }
+
+ public function reorganizeSystemFolderStructure() {
$this->createPathForKeys('/files_encryption');
@@ -60,27 +69,28 @@ class Migration {
$this->view->deleteAll('/owncloud_private_key');
$this->view->deleteAll('/files_encryption/share-keys');
$this->view->deleteAll('/files_encryption/keyfiles');
+ }
- $users = \OCP\User::getUsers();
- foreach ($users as $user) {
- // backup all keys
- if ($this->backupUserKeys($user)) {
- // create new 'key' folder
- $this->view->mkdir($user . '/files_encryption/keys');
- // rename users private key
- $this->renameUsersPrivateKey($user);
- // rename file keys
- $path = $user . '/files_encryption/keyfiles';
- $this->renameFileKeys($user, $path);
- $trashPath = $user . '/files_trashbin/keyfiles';
- if (\OC_App::isEnabled('files_trashbin') && $this->view->is_dir($trashPath)) {
- $this->renameFileKeys($user, $trashPath, true);
- $this->view->deleteAll($trashPath);
- $this->view->deleteAll($user . '/files_trashbin/share-keys');
- }
- // delete old folders
- $this->deleteOldKeys($user);
+
+ public function reorganizeFolderStructureForUser($user) {
+ // backup all keys
+ \OC_Util::setupFS($user);
+ if ($this->backupUserKeys($user)) {
+ // create new 'key' folder
+ $this->view->mkdir($user . '/files_encryption/keys');
+ // rename users private key
+ $this->renameUsersPrivateKey($user);
+ // rename file keys
+ $path = $user . '/files_encryption/keyfiles';
+ $this->renameFileKeys($user, $path);
+ $trashPath = $user . '/files_trashbin/keyfiles';
+ if (\OC_App::isEnabled('files_trashbin') && $this->view->is_dir($trashPath)) {
+ $this->renameFileKeys($user, $trashPath, true);
+ $this->view->deleteAll($trashPath);
+ $this->view->deleteAll($user . '/files_trashbin/share-keys');
}
+ // delete old folders
+ $this->deleteOldKeys($user);
}
}
@@ -277,6 +287,4 @@ class Migration {
}
}
}
-
-
}
diff --git a/apps/files_external/css/settings.css b/apps/files_external/css/settings.css
index 101c224c5f5..93689f78c52 100644
--- a/apps/files_external/css/settings.css
+++ b/apps/files_external/css/settings.css
@@ -32,12 +32,18 @@ tr:hover>td.remove>img { visibility:visible; cursor:pointer; }
margin-right: 3px;
}
+#externalStorage td.configuration label {
+ min-width: 144px; /* 130px plus 2x7px padding */
+ display: inline-block;
+ margin-right: 6px;
+}
+
+
#externalStorage td.applicable div.chzn-container {
position: relative;
top: 3px;
}
-
#externalStorage td.status .success {
border-radius: 50%;
}
diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js
index 34271d0de14..a6ecc0650d2 100644
--- a/apps/files_sharing/l10n/da.js
+++ b/apps/files_sharing/l10n/da.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Server til serverdeling er ikke slået til på denne server",
"The mountpoint name contains invalid characters." : "Monteringspunktets navn indeholder ugyldige tegn.",
"Invalid or untrusted SSL certificate" : "Ugyldigt eller upålideligt SSL-certifikat",
+ "Could not authenticate to remote share, password might be wrong" : "Kunne ikke autentikere til fjerndelingen - kodeordet er muilgvis forkert",
+ "Storage not valid" : "Lagerplads er ikke gyldig",
"Couldn't add remote share" : "Kunne ikke tliføje den delte ekstern ressource",
"Shared with you" : "Delt med dig",
"Shared with others" : "Delt med andre",
diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json
index 762a6ade989..e294b420ba9 100644
--- a/apps/files_sharing/l10n/da.json
+++ b/apps/files_sharing/l10n/da.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Server til serverdeling er ikke slået til på denne server",
"The mountpoint name contains invalid characters." : "Monteringspunktets navn indeholder ugyldige tegn.",
"Invalid or untrusted SSL certificate" : "Ugyldigt eller upålideligt SSL-certifikat",
+ "Could not authenticate to remote share, password might be wrong" : "Kunne ikke autentikere til fjerndelingen - kodeordet er muilgvis forkert",
+ "Storage not valid" : "Lagerplads er ikke gyldig",
"Couldn't add remote share" : "Kunne ikke tliføje den delte ekstern ressource",
"Shared with you" : "Delt med dig",
"Shared with others" : "Delt med andre",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index 96510fbc3f5..10bf076192d 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert",
"The mountpoint name contains invalid characters." : "Der Name des Einhängepunktes enthält nicht gültige Zeichen.",
"Invalid or untrusted SSL certificate" : "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat",
+ "Could not authenticate to remote share, password might be wrong" : "Die Authentifizierung an der entfernten Freigabe konnte nicht erfolgen, das Passwort könnte falsch sein",
+ "Storage not valid" : "Speicher ungültig",
"Couldn't add remote share" : "Entfernte Freigabe kann nicht hinzu gefügt werden",
"Shared with you" : "Mit Dir geteilt",
"Shared with others" : "Von Dir geteilt",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index 58ba73427d0..d8b67be0af8 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert",
"The mountpoint name contains invalid characters." : "Der Name des Einhängepunktes enthält nicht gültige Zeichen.",
"Invalid or untrusted SSL certificate" : "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat",
+ "Could not authenticate to remote share, password might be wrong" : "Die Authentifizierung an der entfernten Freigabe konnte nicht erfolgen, das Passwort könnte falsch sein",
+ "Storage not valid" : "Speicher ungültig",
"Couldn't add remote share" : "Entfernte Freigabe kann nicht hinzu gefügt werden",
"Shared with you" : "Mit Dir geteilt",
"Shared with others" : "Von Dir geteilt",
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index 197e41f49e7..61cc0485d64 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert",
"The mountpoint name contains invalid characters." : "Der Name des Einhängepunktes enthält nicht gültige Zeichen.",
"Invalid or untrusted SSL certificate" : "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat",
+ "Could not authenticate to remote share, password might be wrong" : "Die Authentifizierung an der entfernten Freigabe konnte nicht erfolgen, das Passwort könnte falsch sein",
+ "Storage not valid" : "Speicher ungültig",
"Couldn't add remote share" : "Entfernte Freigabe kann nicht hinzugefügt werden",
"Shared with you" : "Mit Ihnen geteilt",
"Shared with others" : "Von Ihnen geteilt",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index f812da438a1..16d6aebd5ee 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert",
"The mountpoint name contains invalid characters." : "Der Name des Einhängepunktes enthält nicht gültige Zeichen.",
"Invalid or untrusted SSL certificate" : "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat",
+ "Could not authenticate to remote share, password might be wrong" : "Die Authentifizierung an der entfernten Freigabe konnte nicht erfolgen, das Passwort könnte falsch sein",
+ "Storage not valid" : "Speicher ungültig",
"Couldn't add remote share" : "Entfernte Freigabe kann nicht hinzugefügt werden",
"Shared with you" : "Mit Ihnen geteilt",
"Shared with others" : "Von Ihnen geteilt",
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index af6159e0420..8488f4f6e85 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Compartir entre servidores no está habilitado en este servidor",
"The mountpoint name contains invalid characters." : "El punto de montaje contiene caracteres inválidos.",
"Invalid or untrusted SSL certificate" : "Certificado SSL inválido o no confiable",
+ "Could not authenticate to remote share, password might be wrong" : "No se ha podido autenticar para compartir remotamente, quizás esté mal la contraseña",
+ "Storage not valid" : "Almacenamiento inválido",
"Couldn't add remote share" : "No se puede añadir un compartido remoto",
"Shared with you" : "Compartido contigo",
"Shared with others" : "Compartido con otros",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index e8f9c2f5517..35c657d8eca 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Compartir entre servidores no está habilitado en este servidor",
"The mountpoint name contains invalid characters." : "El punto de montaje contiene caracteres inválidos.",
"Invalid or untrusted SSL certificate" : "Certificado SSL inválido o no confiable",
+ "Could not authenticate to remote share, password might be wrong" : "No se ha podido autenticar para compartir remotamente, quizás esté mal la contraseña",
+ "Storage not valid" : "Almacenamiento inválido",
"Couldn't add remote share" : "No se puede añadir un compartido remoto",
"Shared with you" : "Compartido contigo",
"Shared with others" : "Compartido con otros",
diff --git a/apps/files_sharing/l10n/fi_FI.js b/apps/files_sharing/l10n/fi_FI.js
index 5b42bd73062..641b229448f 100644
--- a/apps/files_sharing/l10n/fi_FI.js
+++ b/apps/files_sharing/l10n/fi_FI.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Palvelimelta-palvelimelle-jakaminen ei ole käytössä tällä palvelimella",
"The mountpoint name contains invalid characters." : "Liitospisteen nimi sisältää virheellisiä merkkejä.",
"Invalid or untrusted SSL certificate" : "Virheellinen tai ei-luotettu SSL-varmenne",
+ "Could not authenticate to remote share, password might be wrong" : "Tunnistautuminen etäjakoa kohtaan epäonnistui. Salasana saattaa olla väärä",
+ "Storage not valid" : "Tallennustila ei ole kelvollinen",
"Couldn't add remote share" : "Etäjaon liittäminen epäonnistui",
"Shared with you" : "Jaettu kanssasi",
"Shared with others" : "Jaettu muiden kanssa",
diff --git a/apps/files_sharing/l10n/fi_FI.json b/apps/files_sharing/l10n/fi_FI.json
index 32c14309fb3..7d1b2fdf673 100644
--- a/apps/files_sharing/l10n/fi_FI.json
+++ b/apps/files_sharing/l10n/fi_FI.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Palvelimelta-palvelimelle-jakaminen ei ole käytössä tällä palvelimella",
"The mountpoint name contains invalid characters." : "Liitospisteen nimi sisältää virheellisiä merkkejä.",
"Invalid or untrusted SSL certificate" : "Virheellinen tai ei-luotettu SSL-varmenne",
+ "Could not authenticate to remote share, password might be wrong" : "Tunnistautuminen etäjakoa kohtaan epäonnistui. Salasana saattaa olla väärä",
+ "Storage not valid" : "Tallennustila ei ole kelvollinen",
"Couldn't add remote share" : "Etäjaon liittäminen epäonnistui",
"Shared with you" : "Jaettu kanssasi",
"Shared with others" : "Jaettu muiden kanssa",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 418ef7764c1..7f8520b620d 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Le partage de serveur à serveur n'est pas activé sur ce serveur",
"The mountpoint name contains invalid characters." : "Le nom du point de montage contient des caractères invalides.",
"Invalid or untrusted SSL certificate" : "Certificat SSL non valable ou non fiable",
+ "Could not authenticate to remote share, password might be wrong" : "Impossible de s'authentifier au partage distant : le mot de passe en probablement incorrect",
+ "Storage not valid" : "Support de stockage non valide",
"Couldn't add remote share" : "Impossible d'ajouter le partage distant",
"Shared with you" : "Partagés avec vous",
"Shared with others" : "Partagés avec d'autres",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 73b5b199213..02be0c0d003 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Le partage de serveur à serveur n'est pas activé sur ce serveur",
"The mountpoint name contains invalid characters." : "Le nom du point de montage contient des caractères invalides.",
"Invalid or untrusted SSL certificate" : "Certificat SSL non valable ou non fiable",
+ "Could not authenticate to remote share, password might be wrong" : "Impossible de s'authentifier au partage distant : le mot de passe en probablement incorrect",
+ "Storage not valid" : "Support de stockage non valide",
"Couldn't add remote share" : "Impossible d'ajouter le partage distant",
"Shared with you" : "Partagés avec vous",
"Shared with others" : "Partagés avec d'autres",
diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js
index a04775b368a..3f6eff72f33 100644
--- a/apps/files_sharing/l10n/gl.js
+++ b/apps/files_sharing/l10n/gl.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Neste servidor non está activada a compartición de servidor a servidor",
"The mountpoint name contains invalid characters." : "O nome do punto de montaxe contén caracteres inválidos.",
"Invalid or untrusted SSL certificate" : "Certificado SSL incorrecto ou non fiábel",
+ "Could not authenticate to remote share, password might be wrong" : "Non se puido autenticar na compartición remota, o contrasinal podería ser erróneo",
+ "Storage not valid" : "Almacenamento non válido",
"Couldn't add remote share" : "Non foi posíbel engadir a compartición remota",
"Shared with you" : "Compartido con vostede",
"Shared with others" : "Compartido con outros",
diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json
index f08296ee74d..891ed0363ea 100644
--- a/apps/files_sharing/l10n/gl.json
+++ b/apps/files_sharing/l10n/gl.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Neste servidor non está activada a compartición de servidor a servidor",
"The mountpoint name contains invalid characters." : "O nome do punto de montaxe contén caracteres inválidos.",
"Invalid or untrusted SSL certificate" : "Certificado SSL incorrecto ou non fiábel",
+ "Could not authenticate to remote share, password might be wrong" : "Non se puido autenticar na compartición remota, o contrasinal podería ser erróneo",
+ "Storage not valid" : "Almacenamento non válido",
"Couldn't add remote share" : "Non foi posíbel engadir a compartición remota",
"Shared with you" : "Compartido con vostede",
"Shared with others" : "Compartido con outros",
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index a5f2a0fe7f9..fe78f1e2731 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "La condivisione tra server non è abilitata su questo server",
"The mountpoint name contains invalid characters." : "Il nome del punto di mount contiene caratteri non validi.",
"Invalid or untrusted SSL certificate" : "Certificato SSL non valido o non attendibile",
+ "Could not authenticate to remote share, password might be wrong" : "Impossibile autenticarsi sulla condivisione remota, la password potrebbe essere errata",
+ "Storage not valid" : "Archiviazione non valida",
"Couldn't add remote share" : "Impossibile aggiungere la condivisione remota",
"Shared with you" : "Condivisi con te",
"Shared with others" : "Condivisi con altri",
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index 0b1702bc368..a777674fc59 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "La condivisione tra server non è abilitata su questo server",
"The mountpoint name contains invalid characters." : "Il nome del punto di mount contiene caratteri non validi.",
"Invalid or untrusted SSL certificate" : "Certificato SSL non valido o non attendibile",
+ "Could not authenticate to remote share, password might be wrong" : "Impossibile autenticarsi sulla condivisione remota, la password potrebbe essere errata",
+ "Storage not valid" : "Archiviazione non valida",
"Couldn't add remote share" : "Impossibile aggiungere la condivisione remota",
"Shared with you" : "Condivisi con te",
"Shared with others" : "Condivisi con altri",
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index 0ca0b3e9fc3..749e3383b3d 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Server met server delen is niet geactiveerd op deze server",
"The mountpoint name contains invalid characters." : "De naam van het mountpoint bevat ongeldige karakters.",
"Invalid or untrusted SSL certificate" : "Ongeldig of onvertrouwd SSL-certificaat",
+ "Could not authenticate to remote share, password might be wrong" : "Kon niet authenticeren bij externe share, misschien verkeerd wachtwoord",
+ "Storage not valid" : "Opslag ongeldig",
"Couldn't add remote share" : "Kon geen externe share toevoegen",
"Shared with you" : "Gedeeld met u",
"Shared with others" : "Gedeeld door u",
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index d1fec7c4d90..703ca3481cc 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Server met server delen is niet geactiveerd op deze server",
"The mountpoint name contains invalid characters." : "De naam van het mountpoint bevat ongeldige karakters.",
"Invalid or untrusted SSL certificate" : "Ongeldig of onvertrouwd SSL-certificaat",
+ "Could not authenticate to remote share, password might be wrong" : "Kon niet authenticeren bij externe share, misschien verkeerd wachtwoord",
+ "Storage not valid" : "Opslag ongeldig",
"Couldn't add remote share" : "Kon geen externe share toevoegen",
"Shared with you" : "Gedeeld met u",
"Shared with others" : "Gedeeld door u",
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index 031720194ad..8ecf29bf125 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Compartilhamento de servidor para servidor não está habilitado no servidor",
"The mountpoint name contains invalid characters." : "O nome do ponto de montagem contém caracteres inválidos.",
"Invalid or untrusted SSL certificate" : "Certificado SSL inválido ou não confiável",
+ "Could not authenticate to remote share, password might be wrong" : "Não foi possível autenticação com o compartilhamento remoto, a senha deve estar errada",
+ "Storage not valid" : "Armazenamento não válido",
"Couldn't add remote share" : "Não foi possível adicionar compartilhamento remoto",
"Shared with you" : "Compartilhado com você",
"Shared with others" : "Compartilhado com outros",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index 457b72c4389..7ef2591cf74 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Compartilhamento de servidor para servidor não está habilitado no servidor",
"The mountpoint name contains invalid characters." : "O nome do ponto de montagem contém caracteres inválidos.",
"Invalid or untrusted SSL certificate" : "Certificado SSL inválido ou não confiável",
+ "Could not authenticate to remote share, password might be wrong" : "Não foi possível autenticação com o compartilhamento remoto, a senha deve estar errada",
+ "Storage not valid" : "Armazenamento não válido",
"Couldn't add remote share" : "Não foi possível adicionar compartilhamento remoto",
"Shared with you" : "Compartilhado com você",
"Shared with others" : "Compartilhado com outros",
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index 588dc05f611..269ddc19337 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "На данном сервере выключено межсерверное предоставление общего доступа",
"The mountpoint name contains invalid characters." : "Имя точки монтирования содержит недопустимые символы.",
"Invalid or untrusted SSL certificate" : "Недействительный или недоверенный сертификат SSL",
+ "Could not authenticate to remote share, password might be wrong" : "Не удалось произвести аутентификацию для доступа к удалённому хранилищу, возможно неправильно указан пароль",
+ "Storage not valid" : "Хранилище не доступно",
"Couldn't add remote share" : "Невозможно добавить удалённый общий ресурс",
"Shared with you" : "Поделились с вами",
"Shared with others" : "Доступные для других",
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index 1a2fcbb9d95..bb0e90ec787 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "На данном сервере выключено межсерверное предоставление общего доступа",
"The mountpoint name contains invalid characters." : "Имя точки монтирования содержит недопустимые символы.",
"Invalid or untrusted SSL certificate" : "Недействительный или недоверенный сертификат SSL",
+ "Could not authenticate to remote share, password might be wrong" : "Не удалось произвести аутентификацию для доступа к удалённому хранилищу, возможно неправильно указан пароль",
+ "Storage not valid" : "Хранилище не доступно",
"Couldn't add remote share" : "Невозможно добавить удалённый общий ресурс",
"Shared with you" : "Поделились с вами",
"Shared with others" : "Доступные для других",
diff --git a/apps/files_sharing/l10n/sk_SK.js b/apps/files_sharing/l10n/sk_SK.js
index d7df97d53ea..cf3d5e15332 100644
--- a/apps/files_sharing/l10n/sk_SK.js
+++ b/apps/files_sharing/l10n/sk_SK.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Zdieľanie server-server nie je na tomto serveri povolené",
"The mountpoint name contains invalid characters." : "Názov pripojovacieho bodu obsahuje nepovolené znaky.",
"Invalid or untrusted SSL certificate" : "Neplatný alebo nedôveryhodný certifikát SSL",
+ "Could not authenticate to remote share, password might be wrong" : "Nie je možné overiť vo vzdialenom úložisku, heslo môže byť nesprávne",
+ "Storage not valid" : "Neplatné úložisko",
"Couldn't add remote share" : "Nemožno pridať vzdialené zdieľanie",
"Shared with you" : "Zdieľané s vami",
"Shared with others" : "Zdieľané s ostanými",
diff --git a/apps/files_sharing/l10n/sk_SK.json b/apps/files_sharing/l10n/sk_SK.json
index b88d2cfca15..8c96ff059b0 100644
--- a/apps/files_sharing/l10n/sk_SK.json
+++ b/apps/files_sharing/l10n/sk_SK.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Zdieľanie server-server nie je na tomto serveri povolené",
"The mountpoint name contains invalid characters." : "Názov pripojovacieho bodu obsahuje nepovolené znaky.",
"Invalid or untrusted SSL certificate" : "Neplatný alebo nedôveryhodný certifikát SSL",
+ "Could not authenticate to remote share, password might be wrong" : "Nie je možné overiť vo vzdialenom úložisku, heslo môže byť nesprávne",
+ "Storage not valid" : "Neplatné úložisko",
"Couldn't add remote share" : "Nemožno pridať vzdialené zdieľanie",
"Shared with you" : "Zdieľané s vami",
"Shared with others" : "Zdieľané s ostanými",
diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index 4086bb1216d..0576be66b4b 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -167,6 +167,9 @@ class Trashbin {
$trashPath = '/files_trashbin/files/' . $filename . '.d' . $timestamp;
try {
$sizeOfAddedFiles = $view->filesize('/files/' . $file_path);
+ if ($view->file_exists($trashPath)) {
+ $view->unlink($trashPath);
+ }
$view->rename('/files/' . $file_path, $trashPath);
} catch (\OCA\Files_Trashbin\Exceptions\CopyRecursiveException $e) {
$sizeOfAddedFiles = false;
diff --git a/apps/provisioning_api/appinfo/info.xml b/apps/provisioning_api/appinfo/info.xml
index 3f1fa745cf5..7c662c18c09 100644
--- a/apps/provisioning_api/appinfo/info.xml
+++ b/apps/provisioning_api/appinfo/info.xml
@@ -19,4 +19,8 @@
<documentation>
<admin>admin-provisioning-api</admin>
</documentation>
+ <types>
+ <!-- this is used to disable the feature of enabling an app for specific groups only because this would break this app -->
+ <filesystem/>
+ </types>
</info>
diff --git a/config/.htaccess b/config/.htaccess
index 2421e9a1631..c7a7b79feac 100644
--- a/config/.htaccess
+++ b/config/.htaccess
@@ -1,10 +1,10 @@
# line below if for Apache 2.4
-<ifModule mod_authz_core>
+<ifModule mod_authz_core.c>
Require all denied
</ifModule>
# line below if for Apache 2.2
-<ifModule !mod_authz_core>
+<ifModule !mod_authz_core.c>
deny from all
</ifModule>
diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php
index 0f5a3315f8f..12ce633838f 100644
--- a/lib/private/connector/sabre/file.php
+++ b/lib/private/connector/sabre/file.php
@@ -64,7 +64,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
throw new \Sabre\DAV\Exception\ServiceUnavailable("Encryption is disabled");
}
- $fileName = basename($this->path);
+ $fileName = basename($this->info->getPath());
if (!\OCP\Util::isValidFileName($fileName)) {
throw new \Sabre\DAV\Exception\BadRequest();
}
@@ -74,8 +74,8 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
return $this->createFileChunked($data);
}
- list($storage, ) = $this->fileView->resolvePath($this->path);
- $needsPartFile = $this->needsPartFile($storage);
+ list($storage,) = $this->fileView->resolvePath($this->path);
+ $needsPartFile = $this->needsPartFile($storage) && (strlen($this->path) > 1);
if ($needsPartFile) {
// mark file as partial while uploading (ignored by the scanner)
diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php
index 8831320bcee..5438bdad5cb 100644
--- a/lib/private/files/cache/cache.php
+++ b/lib/private/files/cache/cache.php
@@ -596,6 +596,7 @@ class Cache {
'WHERE `parent` = ? AND `storage` = ?';
$result = \OC_DB::executeAudited($sql, array($id, $this->getNumericStorageId()));
if ($row = $result->fetchRow()) {
+ $result->closeCursor();
list($sum, $min, $unencryptedSum) = array_values($row);
$sum = 0 + $sum;
$min = 0 + $min;
@@ -618,6 +619,8 @@ class Cache {
if ($totalSize !== -1 and $unencryptedSum > 0) {
$totalSize = $unencryptedSum;
}
+ } else {
+ $result->closeCursor();
}
}
return $totalSize;
diff --git a/lib/private/files/cache/homecache.php b/lib/private/files/cache/homecache.php
index 2b3967c8807..ad7f587b8b6 100644
--- a/lib/private/files/cache/homecache.php
+++ b/lib/private/files/cache/homecache.php
@@ -35,6 +35,7 @@ class HomeCache extends Cache {
'WHERE `parent` = ? AND `storage` = ? AND `size` >= 0';
$result = \OC_DB::executeAudited($sql, array($id, $this->getNumericStorageId()));
if ($row = $result->fetchRow()) {
+ $result->closeCursor();
list($sum, $unencryptedSum) = array_values($row);
$totalSize = 0 + $sum;
$unencryptedSize = 0 + $unencryptedSum;
diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index c460159ece3..140d892652f 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -293,7 +293,7 @@ class Filesystem {
}
$mount = self::$mounts->find($path);
if ($mount) {
- return array($mount->getStorage(), $mount->getInternalPath($path));
+ return array($mount->getStorage(), rtrim($mount->getInternalPath($path), '/'));
} else {
return array(null, null);
}
diff --git a/lib/private/files/node/root.php b/lib/private/files/node/root.php
index 1dd4a3e378d..1834ef67bef 100644
--- a/lib/private/files/node/root.php
+++ b/lib/private/files/node/root.php
@@ -155,7 +155,7 @@ class Root extends Folder implements IRootFolder {
* @param string $path
* @throws \OCP\Files\NotFoundException
* @throws \OCP\Files\NotPermittedException
- * @return string
+ * @return \OCP\Files\Node
*/
public function get($path) {
$path = $this->normalizePath($path);
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index 096d8044b75..a2717ce4321 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -537,16 +537,18 @@ class View {
if ($this->shouldEmitHooks()) {
$this->emit_file_hooks_post($exists, $path2);
}
- } elseif ($this->shouldEmitHooks() && $result !== false) {
+ } elseif ($result !== false) {
$this->updater->rename($path1, $path2);
- \OC_Hook::emit(
- Filesystem::CLASSNAME,
- Filesystem::signal_post_rename,
- array(
- Filesystem::signal_param_oldpath => $this->getHookPath($path1),
- Filesystem::signal_param_newpath => $this->getHookPath($path2)
- )
- );
+ if ($this->shouldEmitHooks($path1) and $this->shouldEmitHooks($path2)) {
+ \OC_Hook::emit(
+ Filesystem::CLASSNAME,
+ Filesystem::signal_post_rename,
+ array(
+ Filesystem::signal_param_oldpath => $this->getHookPath($path1),
+ Filesystem::signal_param_newpath => $this->getHookPath($path2)
+ )
+ );
+ }
}
return $result;
} else {
@@ -1315,7 +1317,7 @@ class View {
$maxLen = min(PHP_MAXPATHLEN, 4000);
// Check for the string length - performed using isset() instead of strlen()
// because isset() is about 5x-40x faster.
- if(isset($path[$maxLen])) {
+ if (isset($path[$maxLen])) {
$pathLen = strlen($path);
throw new \OCP\Files\InvalidPathException("Path length($pathLen) exceeds max path length($maxLen): $path");
}
@@ -1351,7 +1353,7 @@ class View {
* @return \OCP\Files\FileInfo
*/
private function getPartFileInfo($path) {
- $mount = $this->getMount($path);
+ $mount = $this->getMount($path);
$storage = $mount->getStorage();
$internalPath = $mount->getInternalPath($this->getAbsolutePath($path));
return new FileInfo(
diff --git a/lib/private/search/result/file.php b/lib/private/search/result/file.php
index 13f1a62fbc0..ad65dce2bc4 100644
--- a/lib/private/search/result/file.php
+++ b/lib/private/search/result/file.php
@@ -77,7 +77,7 @@ class File extends \OCP\Search\Result {
$this->link = \OCP\Util::linkTo(
'files',
'index.php',
- array('dir' => $info['dirname'], 'file' => $info['basename'])
+ array('dir' => $info['dirname'], 'scrollto' => $info['basename'])
);
$this->permissions = $data->getPermissions();
$this->path = $path;
diff --git a/lib/private/setup.php b/lib/private/setup.php
index a350838763f..e3a29b6469d 100644
--- a/lib/private/setup.php
+++ b/lib/private/setup.php
@@ -287,11 +287,11 @@ class OC_Setup {
$now = date('Y-m-d H:i:s');
$content = "# Generated by ownCloud on $now\n";
$content.= "# line below if for Apache 2.4\n";
- $content.= "<ifModule mod_authz_core>\n";
+ $content.= "<ifModule mod_authz_core.c>\n";
$content.= "Require all denied\n";
$content.= "</ifModule>\n\n";
$content.= "# line below if for Apache 2.2\n";
- $content.= "<ifModule !mod_authz_core>\n";
+ $content.= "<ifModule !mod_authz_core.c>\n";
$content.= "deny from all\n";
$content.= "</ifModule>\n\n";
$content.= "# section for Apache 2.2 and 2.4\n";
diff --git a/lib/private/share/share.php b/lib/private/share/share.php
index c9f9654203e..b2c84e39044 100644
--- a/lib/private/share/share.php
+++ b/lib/private/share/share.php
@@ -706,6 +706,7 @@ class Share extends \OC\Share\Constants {
$token = \OC::$server->getSecureRandom()->getMediumStrengthGenerator()->generate(self::TOKEN_LENGTH, \OCP\Security\ISecureRandom::CHAR_LOWER . \OCP\Security\ISecureRandom::CHAR_UPPER .
\OCP\Security\ISecureRandom::CHAR_DIGITS);
+ $shareWith = rtrim($shareWith, '/');
$shareId = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, null, $token, $itemSourceName);
$send = false;
diff --git a/settings/l10n/da.js b/settings/l10n/da.js
index 9ab3a0b443c..97e85ac6ded 100644
--- a/settings/l10n/da.js
+++ b/settings/l10n/da.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "aldrig",
"deleted {userName}" : "slettede {userName}",
"add group" : "Tilføj gruppe",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Ændring af kodeordet vil føre til datatab, fordi datagendannelse ikke er tilgængelig for denne bruger",
"A valid username must be provided" : "Et gyldigt brugernavn skal angives",
"Error creating user" : "Fejl ved oprettelse af bruger",
"A valid password must be provided" : "En gyldig adgangskode skal angives",
diff --git a/settings/l10n/da.json b/settings/l10n/da.json
index 0eb32f82012..1b0453e3d48 100644
--- a/settings/l10n/da.json
+++ b/settings/l10n/da.json
@@ -85,6 +85,7 @@
"never" : "aldrig",
"deleted {userName}" : "slettede {userName}",
"add group" : "Tilføj gruppe",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Ændring af kodeordet vil føre til datatab, fordi datagendannelse ikke er tilgængelig for denne bruger",
"A valid username must be provided" : "Et gyldigt brugernavn skal angives",
"Error creating user" : "Fejl ved oprettelse af bruger",
"A valid password must be provided" : "En gyldig adgangskode skal angives",
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 9076255b464..b9e84f22b73 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -7,7 +7,7 @@ OC.L10N.register(
"Security" : "Sicherheit",
"Email Server" : "E-Mail-Server",
"Log" : "Log",
- "Authentication error" : "Fehler bei der Anmeldung",
+ "Authentication error" : "Authentifizierungsfehler",
"Your full name has been changed." : "Dein vollständiger Name ist geändert worden.",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
"add group" : "Gruppe hinzufügen",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Die Änderung des Passworts führt zum Datenverlust, da die Datenwiederherstellung für diesen Nutzer nicht verfügbar ist",
"A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
"Error creating user" : "Beim Anlegen des Benutzers ist ein Fehler aufgetreten",
"A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index fae5062e5c9..cb6f351f74a 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -5,7 +5,7 @@
"Security" : "Sicherheit",
"Email Server" : "E-Mail-Server",
"Log" : "Log",
- "Authentication error" : "Fehler bei der Anmeldung",
+ "Authentication error" : "Authentifizierungsfehler",
"Your full name has been changed." : "Dein vollständiger Name ist geändert worden.",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
@@ -85,6 +85,7 @@
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
"add group" : "Gruppe hinzufügen",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Die Änderung des Passworts führt zum Datenverlust, da die Datenwiederherstellung für diesen Nutzer nicht verfügbar ist",
"A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
"Error creating user" : "Beim Anlegen des Benutzers ist ein Fehler aufgetreten",
"A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 1b3177f9375..3ead0502493 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -7,7 +7,7 @@ OC.L10N.register(
"Security" : "Sicherheit",
"Email Server" : "E-Mail-Server",
"Log" : "Log",
- "Authentication error" : "Authentifizierungs-Fehler",
+ "Authentication error" : "Authentifizierungsfehler",
"Your full name has been changed." : "Ihr vollständiger Name ist geändert worden.",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
"add group" : "Gruppe hinzufügen",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Die Änderung des Passworts führt zum Datenverlust, da die Datenwiederherstellung für diesen Nutzer nicht verfügbar ist",
"A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
"Error creating user" : "Beim Erstellen des Benutzers ist ein Fehler aufgetreten",
"A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
@@ -213,7 +214,7 @@ OC.L10N.register(
"Email" : "E-Mail",
"Your email address" : "Ihre E-Mail-Adresse",
"Fill in an email address to enable password recovery and receive notifications" : "Geben Sie eine E-Mail-Adresse an, um eine Wiederherstellung des Passworts zu ermöglichen und Benachrichtigungen zu empfangen",
- "No email address set" : "Keine E-Mail Adresse angegeben",
+ "No email address set" : "Keine E-Mail-Adresse angegeben",
"Profile picture" : "Profilbild",
"Upload new" : "Neues hochladen",
"Select new from Files" : "Neues aus Dateien wählen",
@@ -261,7 +262,7 @@ OC.L10N.register(
"Last Login" : "Letzte Anmeldung",
"change full name" : "Vollständigen Namen ändern",
"set new password" : "Neues Passwort setzen",
- "change email address" : "E-Mail Adresse ändern",
+ "change email address" : "E-Mail-Adresse ändern",
"Default" : "Standard"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index c1205620d9c..226c2d6a517 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -5,7 +5,7 @@
"Security" : "Sicherheit",
"Email Server" : "E-Mail-Server",
"Log" : "Log",
- "Authentication error" : "Authentifizierungs-Fehler",
+ "Authentication error" : "Authentifizierungsfehler",
"Your full name has been changed." : "Ihr vollständiger Name ist geändert worden.",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
@@ -85,6 +85,7 @@
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
"add group" : "Gruppe hinzufügen",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Die Änderung des Passworts führt zum Datenverlust, da die Datenwiederherstellung für diesen Nutzer nicht verfügbar ist",
"A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
"Error creating user" : "Beim Erstellen des Benutzers ist ein Fehler aufgetreten",
"A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
@@ -211,7 +212,7 @@
"Email" : "E-Mail",
"Your email address" : "Ihre E-Mail-Adresse",
"Fill in an email address to enable password recovery and receive notifications" : "Geben Sie eine E-Mail-Adresse an, um eine Wiederherstellung des Passworts zu ermöglichen und Benachrichtigungen zu empfangen",
- "No email address set" : "Keine E-Mail Adresse angegeben",
+ "No email address set" : "Keine E-Mail-Adresse angegeben",
"Profile picture" : "Profilbild",
"Upload new" : "Neues hochladen",
"Select new from Files" : "Neues aus Dateien wählen",
@@ -259,7 +260,7 @@
"Last Login" : "Letzte Anmeldung",
"change full name" : "Vollständigen Namen ändern",
"set new password" : "Neues Passwort setzen",
- "change email address" : "E-Mail Adresse ändern",
+ "change email address" : "E-Mail-Adresse ändern",
"Default" : "Standard"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index 6e114758a6c..8b1fb5dee0f 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "nunca",
"deleted {userName}" : "borrado {userName}",
"add group" : "añadir Grupo",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Cambiar la contraseña provocará pérdida de datos porque la recuperación de datos no está disponible para este usuario",
"A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
"Error creating user" : "Error al crear usuario",
"A valid password must be provided" : "Se debe proporcionar una contraseña válida",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index ef372d13532..9f9b4fa75ea 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -85,6 +85,7 @@
"never" : "nunca",
"deleted {userName}" : "borrado {userName}",
"add group" : "añadir Grupo",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Cambiar la contraseña provocará pérdida de datos porque la recuperación de datos no está disponible para este usuario",
"A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
"Error creating user" : "Error al crear usuario",
"A valid password must be provided" : "Se debe proporcionar una contraseña válida",
diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js
index a02a13c7998..41e355143ad 100644
--- a/settings/l10n/fi_FI.js
+++ b/settings/l10n/fi_FI.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "ei koskaan",
"deleted {userName}" : "poistettu {userName}",
"add group" : "lisää ryhmä",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Salasanan muuttaminen johtaa tietojen häviämiseen, koska tietojen palautusta ei ole käytettävissä tämän käyttäjän kohdalla",
"A valid username must be provided" : "Anna kelvollinen käyttäjätunnus",
"Error creating user" : "Virhe käyttäjää luotaessa",
"A valid password must be provided" : "Anna kelvollinen salasana",
diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json
index eb945d8003b..9316614cfbd 100644
--- a/settings/l10n/fi_FI.json
+++ b/settings/l10n/fi_FI.json
@@ -85,6 +85,7 @@
"never" : "ei koskaan",
"deleted {userName}" : "poistettu {userName}",
"add group" : "lisää ryhmä",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Salasanan muuttaminen johtaa tietojen häviämiseen, koska tietojen palautusta ei ole käytettävissä tämän käyttäjän kohdalla",
"A valid username must be provided" : "Anna kelvollinen käyttäjätunnus",
"Error creating user" : "Virhe käyttäjää luotaessa",
"A valid password must be provided" : "Anna kelvollinen salasana",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index 1b237acab14..af8c4abec7d 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "jamais",
"deleted {userName}" : "{userName} supprimé",
"add group" : "ajouter un groupe",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "La modification du mot de passe entrainera la perte des données car la restauration de données n'est pas disponible pour cet utilisateur",
"A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi",
"Error creating user" : "Erreur lors de la création de l'utilisateur",
"A valid password must be provided" : "Un mot de passe valide doit être saisi",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index 9b676cc8a0d..d033844ab52 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -85,6 +85,7 @@
"never" : "jamais",
"deleted {userName}" : "{userName} supprimé",
"add group" : "ajouter un groupe",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "La modification du mot de passe entrainera la perte des données car la restauration de données n'est pas disponible pour cet utilisateur",
"A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi",
"Error creating user" : "Erreur lors de la création de l'utilisateur",
"A valid password must be provided" : "Un mot de passe valide doit être saisi",
diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js
index 38b89b874b5..6d85345ed14 100644
--- a/settings/l10n/gl.js
+++ b/settings/l10n/gl.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "nunca",
"deleted {userName}" : "{userName} foi eliminado",
"add group" : "engadir un grupo",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Mudar o contrasinal resultará nunha perda de datos, xa que a recuperación de datos non está dispoñible para este usuario",
"A valid username must be provided" : "Debe fornecer un nome de usuario",
"Error creating user" : "Produciuse un erro ao crear o usuario",
"A valid password must be provided" : "Debe fornecer un contrasinal",
diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json
index 09ede2a400c..f9f338a2dc8 100644
--- a/settings/l10n/gl.json
+++ b/settings/l10n/gl.json
@@ -85,6 +85,7 @@
"never" : "nunca",
"deleted {userName}" : "{userName} foi eliminado",
"add group" : "engadir un grupo",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Mudar o contrasinal resultará nunha perda de datos, xa que a recuperación de datos non está dispoñible para este usuario",
"A valid username must be provided" : "Debe fornecer un nome de usuario",
"Error creating user" : "Produciuse un erro ao crear o usuario",
"A valid password must be provided" : "Debe fornecer un contrasinal",
diff --git a/settings/l10n/it.js b/settings/l10n/it.js
index d33b5d60488..a57e2e7e092 100644
--- a/settings/l10n/it.js
+++ b/settings/l10n/it.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "mai",
"deleted {userName}" : "{userName} eliminato",
"add group" : "aggiungi gruppo",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Il cambiamento della password causerà una perdita di dati, poiché il ripristino dei dati non è disponibile per questo utente",
"A valid username must be provided" : "Deve essere fornito un nome utente valido",
"Error creating user" : "Errore durante la creazione dell'utente",
"A valid password must be provided" : "Deve essere fornita una password valida",
diff --git a/settings/l10n/it.json b/settings/l10n/it.json
index 3fa9e35c447..32b9f5b2296 100644
--- a/settings/l10n/it.json
+++ b/settings/l10n/it.json
@@ -85,6 +85,7 @@
"never" : "mai",
"deleted {userName}" : "{userName} eliminato",
"add group" : "aggiungi gruppo",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Il cambiamento della password causerà una perdita di dati, poiché il ripristino dei dati non è disponibile per questo utente",
"A valid username must be provided" : "Deve essere fornito un nome utente valido",
"Error creating user" : "Errore durante la creazione dell'utente",
"A valid password must be provided" : "Deve essere fornita una password valida",
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index db5d1c311e8..ad757be6024 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "geen",
"deleted {userName}" : "verwijderd {userName}",
"add group" : "toevoegen groep",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Wijzigen van het wachtwoord leidt tot gegevensverlies, omdat gegevensherstel voor deze gebruiker niet beschikbaar is",
"A valid username must be provided" : "Er moet een geldige gebruikersnaam worden opgegeven",
"Error creating user" : "Fout bij aanmaken gebruiker",
"A valid password must be provided" : "Er moet een geldig wachtwoord worden opgegeven",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index 88ec42e1f23..bfd61b476d4 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -85,6 +85,7 @@
"never" : "geen",
"deleted {userName}" : "verwijderd {userName}",
"add group" : "toevoegen groep",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Wijzigen van het wachtwoord leidt tot gegevensverlies, omdat gegevensherstel voor deze gebruiker niet beschikbaar is",
"A valid username must be provided" : "Er moet een geldige gebruikersnaam worden opgegeven",
"Error creating user" : "Fout bij aanmaken gebruiker",
"A valid password must be provided" : "Er moet een geldig wachtwoord worden opgegeven",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index b55fa78e1cd..c0d70d4a541 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "nunca",
"deleted {userName}" : "eliminado {userName}",
"add group" : "adicionar grupo",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Trocar a senha irá resultar em perda de dados, porque recuperação de dados não está disponível para este usuário",
"A valid username must be provided" : "Forneça um nome de usuário válido",
"Error creating user" : "Erro ao criar usuário",
"A valid password must be provided" : "Forneça uma senha válida",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index b46bfedb48e..638ade0c4fa 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -85,6 +85,7 @@
"never" : "nunca",
"deleted {userName}" : "eliminado {userName}",
"add group" : "adicionar grupo",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Trocar a senha irá resultar em perda de dados, porque recuperação de dados não está disponível para este usuário",
"A valid username must be provided" : "Forneça um nome de usuário válido",
"Error creating user" : "Erro ao criar usuário",
"A valid password must be provided" : "Forneça uma senha válida",
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index 6debe72b8d8..b2bb954b777 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "никогда",
"deleted {userName}" : "удалён {userName}",
"add group" : "добавить группу",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Изменение пароля приведёт к потере данных, потому что восстановление данных не доступно для этого пользователя",
"A valid username must be provided" : "Укажите правильное имя пользователя",
"Error creating user" : "Ошибка создания пользователя",
"A valid password must be provided" : "Предоставьте корректный пароль",
diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json
index 4c38a015489..e3955dcab27 100644
--- a/settings/l10n/ru.json
+++ b/settings/l10n/ru.json
@@ -85,6 +85,7 @@
"never" : "никогда",
"deleted {userName}" : "удалён {userName}",
"add group" : "добавить группу",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Изменение пароля приведёт к потере данных, потому что восстановление данных не доступно для этого пользователя",
"A valid username must be provided" : "Укажите правильное имя пользователя",
"Error creating user" : "Ошибка создания пользователя",
"A valid password must be provided" : "Предоставьте корректный пароль",
diff --git a/settings/l10n/sk_SK.js b/settings/l10n/sk_SK.js
index eb3ec0f6b82..f5a676281f4 100644
--- a/settings/l10n/sk_SK.js
+++ b/settings/l10n/sk_SK.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"never" : "nikdy",
"deleted {userName}" : "vymazané {userName}",
"add group" : "pridať skupinu",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Zmena hesla bude mať za následok stratu dát, pretože obnova dát nie je k dispozícii pre tohto používateľa",
"A valid username must be provided" : "Musíte zadať platné používateľské meno",
"Error creating user" : "Chyba pri vytváraní používateľa",
"A valid password must be provided" : "Musíte zadať platné heslo",
diff --git a/settings/l10n/sk_SK.json b/settings/l10n/sk_SK.json
index d6bfaf75280..d42fb25f03b 100644
--- a/settings/l10n/sk_SK.json
+++ b/settings/l10n/sk_SK.json
@@ -85,6 +85,7 @@
"never" : "nikdy",
"deleted {userName}" : "vymazané {userName}",
"add group" : "pridať skupinu",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Zmena hesla bude mať za následok stratu dát, pretože obnova dát nie je k dispozícii pre tohto používateľa",
"A valid username must be provided" : "Musíte zadať platné používateľské meno",
"Error creating user" : "Chyba pri vytváraní používateľa",
"A valid password must be provided" : "Musíte zadať platné heslo",
diff --git a/tests/lib/connector/sabre/file.php b/tests/lib/connector/sabre/file.php
index 6bb1b4e75d1..33dc78f87d8 100644
--- a/tests/lib/connector/sabre/file.php
+++ b/tests/lib/connector/sabre/file.php
@@ -32,6 +32,31 @@ class Test_OC_Connector_Sabre_File extends \Test\TestCase {
$file->put('test data');
}
+ public function testPutSingleFileShare() {
+ // setup
+ $storage = $this->getMock('\OCP\Files\Storage');
+ $view = $this->getMock('\OC\Files\View', array('file_put_contents', 'getRelativePath'), array());
+ $view->expects($this->any())
+ ->method('resolvePath')
+ ->with('')
+ ->will($this->returnValue(array($storage, '')));
+ $view->expects($this->any())
+ ->method('getRelativePath')
+ ->will($this->returnValue(''));
+ $view->expects($this->any())
+ ->method('file_put_contents')
+ ->with('')
+ ->will($this->returnValue(true));
+
+ $info = new \OC\Files\FileInfo('/foo.txt', null, null, array(
+ 'permissions' => \OCP\Constants::PERMISSION_ALL
+ ), null);
+
+ $file = new OC_Connector_Sabre_File($view, $info);
+
+ $this->assertNotEmpty($file->put('test data'));
+ }
+
/**
* @expectedException \Sabre\DAV\Exception
*/
diff --git a/tests/lib/files/node/integration.php b/tests/lib/files/node/integration.php
index d8c180cc844..456a4a0e287 100644
--- a/tests/lib/files/node/integration.php
+++ b/tests/lib/files/node/integration.php
@@ -80,7 +80,9 @@ class IntegrationTests extends \Test\TestCase {
$this->assertEquals('text/plain', $file->getMimeType());
$this->assertEquals('qwerty', $file->getContent());
$this->assertFalse($this->root->nodeExists('/bar.txt'));
- $file->move('/bar.txt');
+ $target = $file->move('/bar.txt');
+ $this->assertEquals($id, $target->getId());
+ $this->assertEquals($id, $file->getId());
$this->assertFalse($this->root->nodeExists('/foo.txt'));
$this->assertTrue($this->root->nodeExists('/bar.txt'));
$this->assertEquals('bar.txt', $file->getName());
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php
index 158c964fd0d..5e42e5ffd0f 100644
--- a/tests/lib/files/view.php
+++ b/tests/lib/files/view.php
@@ -729,6 +729,22 @@ class View extends \Test\TestCase {
);
}
+ public function testFileView() {
+ $storage = new Temporary(array());
+ $scanner = $storage->getScanner();
+ $storage->file_put_contents('foo.txt', 'bar');
+ \OC\Files\Filesystem::mount($storage, array(), '/test/');
+ $scanner->scan('');
+ $view = new \OC\Files\View('/test/foo.txt');
+
+ $this->assertEquals('bar', $view->file_get_contents(''));
+ $fh = tmpfile();
+ fwrite($fh, 'foo');
+ rewind($fh);
+ $view->file_put_contents('', $fh);
+ $this->assertEquals('foo', $view->file_get_contents(''));
+ }
+
/**
* @dataProvider tooLongPathDataProvider
* @expectedException \OCP\Files\InvalidPathException