aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/federatedfilesharing/l10n/is.js3
-rw-r--r--apps/federatedfilesharing/l10n/is.json3
-rw-r--r--apps/federatedfilesharing/l10n/ro.js16
-rw-r--r--apps/federatedfilesharing/l10n/ro.json16
-rw-r--r--apps/federatedfilesharing/l10n/ru.js7
-rw-r--r--apps/federatedfilesharing/l10n/ru.json7
-rw-r--r--apps/files/css/files.css5
-rw-r--r--apps/files/js/breadcrumb.js3
-rw-r--r--apps/files/js/filelist.js2
-rw-r--r--apps/files/l10n/is.js11
-rw-r--r--apps/files/l10n/is.json11
-rw-r--r--apps/files_external/l10n/ru.js2
-rw-r--r--apps/files_external/l10n/ru.json2
-rwxr-xr-xapps/files_external/tests/env/start-webdav-apache.sh90
-rwxr-xr-xapps/files_external/tests/env/stop-webdav-apache.sh37
-rw-r--r--apps/files_sharing/l10n/is.js8
-rw-r--r--apps/files_sharing/l10n/is.json8
-rw-r--r--apps/files_sharing/l10n/ro.js12
-rw-r--r--apps/files_sharing/l10n/ro.json12
-rw-r--r--apps/files_sharing/lib/Helper.php4
-rw-r--r--apps/updatenotification/l10n/ru.js7
-rw-r--r--apps/updatenotification/l10n/ru.json7
-rw-r--r--core/Controller/LoginController.php3
-rw-r--r--core/css/styles.css4
-rw-r--r--core/l10n/ru.js4
-rw-r--r--core/l10n/ru.json4
-rw-r--r--core/templates/login.php2
-rw-r--r--lib/l10n/ro.js3
-rw-r--r--lib/l10n/ro.json3
-rw-r--r--lib/private/Encryption/DecryptAll.php12
-rw-r--r--lib/private/Files/Storage/DAV.php40
-rw-r--r--lib/private/Share/Share.php2
-rw-r--r--settings/admin.php13
-rw-r--r--settings/l10n/ro.js1
-rw-r--r--settings/l10n/ro.json1
-rw-r--r--settings/templates/admin.php9
-rw-r--r--tests/lib/Encryption/DecryptAllTest.php7
-rw-r--r--tests/lib/Share/ShareTest.php6
38 files changed, 351 insertions, 36 deletions
diff --git a/apps/federatedfilesharing/l10n/is.js b/apps/federatedfilesharing/l10n/is.js
index 14e1c4a3aa8..d8c58944010 100644
--- a/apps/federatedfilesharing/l10n/is.js
+++ b/apps/federatedfilesharing/l10n/is.js
@@ -5,7 +5,10 @@ OC.L10N.register(
"Invalid Federated Cloud ID" : "Ógilt skýjasambandsauðkenni (Federated Cloud ID)",
"Sharing %s failed, because this item is already shared with %s" : "Deiling %s mistókst, því þessu atriði er þegar deilt með %s",
"Not allowed to create a federated share with the same user" : "Ekki er heimilt að búa til skýjasambandssameign með sama notanda",
+ "File is already shared with %s" : "Skránni er þegar deilt með %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Deiling %s mistókst, gat ekki fundið %s, hugsanlega er þjónninn ekki tiltækur í augnablikinu.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Þú tókst við \"/%3$s\" sem fjartengdri sameign frá %1$s (fyrir hönd %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "Þú tókst við \"/%3$s\" sem fjartengdri sameign frá %1$s",
"Accept" : "Samþykkja",
"Decline" : "Hafna",
"Share with me through my #ownCloud Federated Cloud ID, see %s" : "Deila með mér í gegnum víðværa skýjasambandsauðkennið mitt #ownCloud Federated Cloud ID, sjá %s",
diff --git a/apps/federatedfilesharing/l10n/is.json b/apps/federatedfilesharing/l10n/is.json
index 650ebaf2cf1..95f3a6f6927 100644
--- a/apps/federatedfilesharing/l10n/is.json
+++ b/apps/federatedfilesharing/l10n/is.json
@@ -3,7 +3,10 @@
"Invalid Federated Cloud ID" : "Ógilt skýjasambandsauðkenni (Federated Cloud ID)",
"Sharing %s failed, because this item is already shared with %s" : "Deiling %s mistókst, því þessu atriði er þegar deilt með %s",
"Not allowed to create a federated share with the same user" : "Ekki er heimilt að búa til skýjasambandssameign með sama notanda",
+ "File is already shared with %s" : "Skránni er þegar deilt með %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Deiling %s mistókst, gat ekki fundið %s, hugsanlega er þjónninn ekki tiltækur í augnablikinu.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Þú tókst við \"/%3$s\" sem fjartengdri sameign frá %1$s (fyrir hönd %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "Þú tókst við \"/%3$s\" sem fjartengdri sameign frá %1$s",
"Accept" : "Samþykkja",
"Decline" : "Hafna",
"Share with me through my #ownCloud Federated Cloud ID, see %s" : "Deila með mér í gegnum víðværa skýjasambandsauðkennið mitt #ownCloud Federated Cloud ID, sjá %s",
diff --git a/apps/federatedfilesharing/l10n/ro.js b/apps/federatedfilesharing/l10n/ro.js
index 9852af223c2..60a067dcc83 100644
--- a/apps/federatedfilesharing/l10n/ro.js
+++ b/apps/federatedfilesharing/l10n/ro.js
@@ -1,9 +1,25 @@
OC.L10N.register(
"federatedfilesharing",
{
+ "Federated sharing" : "Partajare federalizată",
+ "Invalid Federated Cloud ID" : "ID invalid cloud federalizat",
"Sharing %s failed, because this item is already shared with %s" : "Partajarea %s a eșuat deoarece acest element este deja partajat cu %s",
+ "Not allowed to create a federated share with the same user" : "Nu este permisă crearea unei partajări federalizate cu acelaşi utilizator",
+ "File is already shared with %s" : "Fişierul este deja partajat cu %s",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Partajarea %s a eşuat, nu pot găsi %s, poate serverul nu poate fi contactat.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Ai primit \"/%3$s\" ca partajare remote de la %1$s (în numele %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "Ai primit \"/%3$s\" ca partajare remote de la %1$s",
"Accept" : "Accept",
+ "Decline" : "Refuză",
+ "Share with me through my #ownCloud Federated Cloud ID, see %s" : "Partajează cu mine prin #ownCloud Federated Cloud ID, vezi %s",
+ "Share with me through my #ownCloud Federated Cloud ID" : "Partajează cu mine prin #ownCloud Federated Cloud ID",
+ "Federated Cloud Sharing" : "Partajare federalizata cloud",
"Open documentation" : "Deschide documentația",
+ "Allow users on this server to send shares to other servers" : "Permite utilizatorilor de pe acest server să transmită partajări către alte servere",
+ "Allow users on this server to receive shares from other servers" : "Permite utilizatorilor acestui server să primească partajări de la alte servere",
+ "Federated Cloud" : "Cloud federalizat",
+ "Your Federated Cloud ID:" : "ID Cloud federalizat:",
+ "Share it:" : "Partajează:",
"Add to your website" : "Adaugă la site-ul tău Web",
"Share with me via ownCloud" : "Partajează cu mine via ownCloud",
"HTML Code:" : "Cod HTML:"
diff --git a/apps/federatedfilesharing/l10n/ro.json b/apps/federatedfilesharing/l10n/ro.json
index 62498ac4799..28066d91f33 100644
--- a/apps/federatedfilesharing/l10n/ro.json
+++ b/apps/federatedfilesharing/l10n/ro.json
@@ -1,7 +1,23 @@
{ "translations": {
+ "Federated sharing" : "Partajare federalizată",
+ "Invalid Federated Cloud ID" : "ID invalid cloud federalizat",
"Sharing %s failed, because this item is already shared with %s" : "Partajarea %s a eșuat deoarece acest element este deja partajat cu %s",
+ "Not allowed to create a federated share with the same user" : "Nu este permisă crearea unei partajări federalizate cu acelaşi utilizator",
+ "File is already shared with %s" : "Fişierul este deja partajat cu %s",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Partajarea %s a eşuat, nu pot găsi %s, poate serverul nu poate fi contactat.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Ai primit \"/%3$s\" ca partajare remote de la %1$s (în numele %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "Ai primit \"/%3$s\" ca partajare remote de la %1$s",
"Accept" : "Accept",
+ "Decline" : "Refuză",
+ "Share with me through my #ownCloud Federated Cloud ID, see %s" : "Partajează cu mine prin #ownCloud Federated Cloud ID, vezi %s",
+ "Share with me through my #ownCloud Federated Cloud ID" : "Partajează cu mine prin #ownCloud Federated Cloud ID",
+ "Federated Cloud Sharing" : "Partajare federalizata cloud",
"Open documentation" : "Deschide documentația",
+ "Allow users on this server to send shares to other servers" : "Permite utilizatorilor de pe acest server să transmită partajări către alte servere",
+ "Allow users on this server to receive shares from other servers" : "Permite utilizatorilor acestui server să primească partajări de la alte servere",
+ "Federated Cloud" : "Cloud federalizat",
+ "Your Federated Cloud ID:" : "ID Cloud federalizat:",
+ "Share it:" : "Partajează:",
"Add to your website" : "Adaugă la site-ul tău Web",
"Share with me via ownCloud" : "Partajează cu mine via ownCloud",
"HTML Code:" : "Cod HTML:"
diff --git a/apps/federatedfilesharing/l10n/ru.js b/apps/federatedfilesharing/l10n/ru.js
index 1b28a417245..85642183a95 100644
--- a/apps/federatedfilesharing/l10n/ru.js
+++ b/apps/federatedfilesharing/l10n/ru.js
@@ -4,8 +4,11 @@ OC.L10N.register(
"Federated sharing" : "Общий доступ из объединенного общего хранилища",
"Invalid Federated Cloud ID" : "Неверный ID в объединении облачных хранилищ.",
"Sharing %s failed, because this item is already shared with %s" : "Не удалось поделиться %s, пользователь %s уже имеет доступ к этому элементу",
- "Not allowed to create a federated share with the same user" : "Не допускается создание федеративного общего ресурса с тем-же пользователем",
+ "Not allowed to create a federated share with the same user" : "Не допускается создание федеративного общего ресурса с тем же пользователем",
+ "File is already shared with %s" : "Доступ к файлу уже предоставлен %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Не удалось поделиться %s, не удалось найти %s, возможно, сервер не доступен.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Вы получили \"/%3$s\" в качестве удалённого ресурса из %1$s (от имени %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "Вы получили \"/%3$s\" в качестве удалённого ресурса из %1$s",
"Accept" : "Принять",
"Decline" : "Отклонить",
"Share with me through my #ownCloud Federated Cloud ID, see %s" : "Поделитесь со мной через мой #ownCloud ID в объединении облачных хранилищ, смотрите %s",
@@ -18,7 +21,7 @@ OC.L10N.register(
"Your Federated Cloud ID:" : "Ваш ID в объединении облачных хранилищ:",
"Share it:" : "Поделись этим:",
"Add to your website" : "Добавить к себе на сайт",
- "Share with me via ownCloud" : "Поделитесь мной через ownCloud",
+ "Share with me via ownCloud" : "Поделитесь со мной через ownCloud",
"HTML Code:" : "HTML код:"
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/federatedfilesharing/l10n/ru.json b/apps/federatedfilesharing/l10n/ru.json
index f596784ad49..b062724fdca 100644
--- a/apps/federatedfilesharing/l10n/ru.json
+++ b/apps/federatedfilesharing/l10n/ru.json
@@ -2,8 +2,11 @@
"Federated sharing" : "Общий доступ из объединенного общего хранилища",
"Invalid Federated Cloud ID" : "Неверный ID в объединении облачных хранилищ.",
"Sharing %s failed, because this item is already shared with %s" : "Не удалось поделиться %s, пользователь %s уже имеет доступ к этому элементу",
- "Not allowed to create a federated share with the same user" : "Не допускается создание федеративного общего ресурса с тем-же пользователем",
+ "Not allowed to create a federated share with the same user" : "Не допускается создание федеративного общего ресурса с тем же пользователем",
+ "File is already shared with %s" : "Доступ к файлу уже предоставлен %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Не удалось поделиться %s, не удалось найти %s, возможно, сервер не доступен.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Вы получили \"/%3$s\" в качестве удалённого ресурса из %1$s (от имени %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "Вы получили \"/%3$s\" в качестве удалённого ресурса из %1$s",
"Accept" : "Принять",
"Decline" : "Отклонить",
"Share with me through my #ownCloud Federated Cloud ID, see %s" : "Поделитесь со мной через мой #ownCloud ID в объединении облачных хранилищ, смотрите %s",
@@ -16,7 +19,7 @@
"Your Federated Cloud ID:" : "Ваш ID в объединении облачных хранилищ:",
"Share it:" : "Поделись этим:",
"Add to your website" : "Добавить к себе на сайт",
- "Share with me via ownCloud" : "Поделитесь мной через ownCloud",
+ "Share with me via ownCloud" : "Поделитесь со мной через ownCloud",
"HTML Code:" : "HTML код:"
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 373739071e9..94eafe27520 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -828,3 +828,8 @@ html.ie8 #controls .button.new {
.app-files .actions .button.new .icon {
margin-bottom: 2px;
}
+
+.canDrop,
+#filestable tbody tr.canDrop {
+ background-color: rgba(255, 255, 140, 1);
+}
diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js
index 58ac9924ef7..98de7aa374c 100644
--- a/apps/files/js/breadcrumb.js
+++ b/apps/files/js/breadcrumb.js
@@ -133,7 +133,8 @@
drop: this.onDrop,
over: this.onOver,
out: this.onOut,
- tolerance: 'pointer'
+ tolerance: 'pointer',
+ hoverClass: 'canDrop'
});
}
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 38b9007d0bc..f249f2d35c9 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1320,7 +1320,7 @@
}
// allow dropping on folders
if (this._folderDropOptions && mime === 'httpd/unix-directory') {
- filenameTd.droppable(this._folderDropOptions);
+ tr.droppable(this._folderDropOptions);
}
if (options.hidden) {
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index 811add007bf..579ac88f97f 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -32,6 +32,15 @@ OC.L10N.register(
"Could not get result from server." : "Fékk ekki niðurstöður frá þjóni.",
"Uploading..." : "Sendi inn ...",
"..." : "...",
+ "{hours}:{minutes}:{seconds} hour{plural_s} left" : "{hours}:{minutes}:{seconds} klukkustundir eftir",
+ "{hours}:{minutes}h" : "{hours}:{minutes}klst",
+ "{minutes}:{seconds} minute{plural_s} left" : "{minutes}:{seconds} mínútur eftir",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}mín",
+ "{seconds} second{plural_s} left" : "{seconds} sekúndur eftir",
+ "{seconds}s" : "{seconds}sek",
+ "Any moment now..." : "Á hverri stundu...",
+ "Soon..." : "Bráðum...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} af {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending hætta.",
"Actions" : "Aðgerðir",
"Download" : "Niðurhal",
@@ -77,6 +86,7 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n bæti","%n bæti"],
"Favorited" : "Sett í eftirlæti",
"Favorite" : "Eftirlæti",
+ "Local link" : "Staðvær tengill",
"Folder" : "Mappa",
"New folder" : "Ný mappa",
"{newname} already exists" : "{newname} er þegar til",
@@ -107,6 +117,7 @@ OC.L10N.register(
"With PHP-FPM it might take 5 minutes for changes to be applied." : "Með PHP-FPM getur það tekið 5 mínútur fyrir breytingar að verða virkar.",
"Missing permissions to edit from here." : "Vantar heimildir til að breyta einhverju héðan.",
"Settings" : "Stillingar",
+ "Show hidden files" : "Sýna faldar skrár",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Notaðu þetta vistfang til að <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">nálgast skrárnar þínar með WebDAV</a>",
"No files in here" : "Engar skrár hér",
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index 13dc3717406..2b4f980ca6d 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -30,6 +30,15 @@
"Could not get result from server." : "Fékk ekki niðurstöður frá þjóni.",
"Uploading..." : "Sendi inn ...",
"..." : "...",
+ "{hours}:{minutes}:{seconds} hour{plural_s} left" : "{hours}:{minutes}:{seconds} klukkustundir eftir",
+ "{hours}:{minutes}h" : "{hours}:{minutes}klst",
+ "{minutes}:{seconds} minute{plural_s} left" : "{minutes}:{seconds} mínútur eftir",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}mín",
+ "{seconds} second{plural_s} left" : "{seconds} sekúndur eftir",
+ "{seconds}s" : "{seconds}sek",
+ "Any moment now..." : "Á hverri stundu...",
+ "Soon..." : "Bráðum...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} af {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending hætta.",
"Actions" : "Aðgerðir",
"Download" : "Niðurhal",
@@ -75,6 +84,7 @@
"_%n byte_::_%n bytes_" : ["%n bæti","%n bæti"],
"Favorited" : "Sett í eftirlæti",
"Favorite" : "Eftirlæti",
+ "Local link" : "Staðvær tengill",
"Folder" : "Mappa",
"New folder" : "Ný mappa",
"{newname} already exists" : "{newname} er þegar til",
@@ -105,6 +115,7 @@
"With PHP-FPM it might take 5 minutes for changes to be applied." : "Með PHP-FPM getur það tekið 5 mínútur fyrir breytingar að verða virkar.",
"Missing permissions to edit from here." : "Vantar heimildir til að breyta einhverju héðan.",
"Settings" : "Stillingar",
+ "Show hidden files" : "Sýna faldar skrár",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Notaðu þetta vistfang til að <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">nálgast skrárnar þínar með WebDAV</a>",
"No files in here" : "Engar skrár hér",
diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js
index 461560e129d..54feb58fcd9 100644
--- a/apps/files_external/l10n/ru.js
+++ b/apps/files_external/l10n/ru.js
@@ -16,7 +16,7 @@ OC.L10N.register(
"Error configuring OAuth2" : "Ошибка настройки OAuth2",
"Generate keys" : "Создать ключи",
"Error generating key pair" : "Ошибка создания ключевой пары",
- "All users. Type to select user or group." : "Все пользователи. Введите имя пользователя или группы.",
+ "All users. Type to select user or group." : "Все пользователи. Для выбора введите имя пользователя или группы.",
"(group)" : "(группа)",
"Compatibility with Mac NFD encoding (slow)" : "Совместимость с кодировкой Mac NFD (медленно)",
"Admin defined" : "Определено админом",
diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json
index 8974114e999..42085cd81f1 100644
--- a/apps/files_external/l10n/ru.json
+++ b/apps/files_external/l10n/ru.json
@@ -14,7 +14,7 @@
"Error configuring OAuth2" : "Ошибка настройки OAuth2",
"Generate keys" : "Создать ключи",
"Error generating key pair" : "Ошибка создания ключевой пары",
- "All users. Type to select user or group." : "Все пользователи. Введите имя пользователя или группы.",
+ "All users. Type to select user or group." : "Все пользователи. Для выбора введите имя пользователя или группы.",
"(group)" : "(группа)",
"Compatibility with Mac NFD encoding (slow)" : "Совместимость с кодировкой Mac NFD (медленно)",
"Admin defined" : "Определено админом",
diff --git a/apps/files_external/tests/env/start-webdav-apache.sh b/apps/files_external/tests/env/start-webdav-apache.sh
new file mode 100755
index 00000000000..48acb8572d6
--- /dev/null
+++ b/apps/files_external/tests/env/start-webdav-apache.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+#
+# ownCloud
+#
+# This script start a docker container to test the files_external tests
+# against. It will also change the files_external config to use the docker
+# container as testing environment. This is reverted in the stop step.
+#
+# If the environment variable RUN_DOCKER_MYSQL is set the ownCloud will
+# be set up using MySQL instead of SQLite.
+#
+# Set environment variable DEBUG to print config file
+#
+# @author Morris Jobke
+# @copyright 2014 Morris Jobke <hey@morrisjobke.de>
+# @copyright 2016 Vincent Petry <pvince81@owncloud.com>
+#
+
+if ! command -v docker >/dev/null 2>&1; then
+ echo "No docker executable found - skipped docker setup"
+ exit 0;
+fi
+
+echo "Docker executable found - setup docker"
+
+echo "Fetch recent morrisjobke/webdav docker image"
+docker pull morrisjobke/webdav
+
+# retrieve current folder to place the config in the parent folder
+thisFolder=`echo $0 | sed 's#env/start-webdav-apache\.sh##'`
+
+if [ -z "$thisFolder" ]; then
+ thisFolder="."
+fi;
+
+if [ -n "$RUN_DOCKER_MYSQL" ]; then
+ echo "Fetch recent mysql docker image"
+ docker pull mysql
+
+ echo "Setup MySQL ..."
+ # user/password will be read by ENV variables in owncloud container (they are generated by docker)
+ databaseContainer=`docker run -e MYSQL_ROOT_PASSWORD=mysupersecretpassword -d mysql`
+ containerName=`docker inspect $databaseContainer | grep Name | grep _ | cut -d \" -f 4 | cut -d / -f 2`
+
+ parameter="--link $containerName:db"
+fi
+
+container=`docker run -P $parameter -d -e USERNAME=test -e PASSWORD=test morrisjobke/webdav`
+host=`docker inspect --format="{{.NetworkSettings.IPAddress}}" $container`
+
+echo -n "Waiting for Apache initialization on ${host}:${port}"
+if ! "$thisFolder"/env/wait-for-connection ${host} 80 60; then
+ echo "[ERROR] Waited 60 seconds, no response" >&2
+ exit 1
+fi
+
+# wait at least 5 more seconds - sometimes the webserver still needs some additional time
+sleep 5
+
+cat > $thisFolder/config.webdav.php <<DELIM
+<?php
+
+return array(
+ 'run'=>true,
+ 'host'=>'${host}:80/webdav/',
+ 'user'=>'test',
+ 'password'=>'test',
+ 'root'=>'',
+ // wait delay in seconds after write operations
+ // (only in tests)
+ // set to higher value for lighttpd webdav
+ 'wait'=> 0
+);
+
+DELIM
+
+echo "ownCloud container: $container"
+
+# put container IDs into a file to drop them after the test run (keep in mind that multiple tests run in parallel on the same host)
+echo $container >> $thisFolder/dockerContainerWebdav.$EXECUTOR_NUMBER.webdav
+
+if [ -n "$databaseContainer" ]; then
+ echo "Database container: $databaseContainer"
+ echo $databaseContainer >> $thisFolder/dockerContainerWebdav.$EXECUTOR_NUMBER.webdav
+fi
+
+if [ -n "$DEBUG" ]; then
+ cat $thisFolder/config.webdav.php
+ cat $thisFolder/dockerContainerWebdav.$EXECUTOR_NUMBER.webdav
+fi
diff --git a/apps/files_external/tests/env/stop-webdav-apache.sh b/apps/files_external/tests/env/stop-webdav-apache.sh
new file mode 100755
index 00000000000..e898a65cc36
--- /dev/null
+++ b/apps/files_external/tests/env/stop-webdav-apache.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+#
+# ownCloud
+#
+# This script stops the docker container the files_external tests were run
+# against. It will also revert the config changes done in start step.
+#
+# @author Morris Jobke
+# @copyright 2014 Morris Jobke <hey@morrisjobke.de>
+# @copyright 2016 Vincent Petry <pvince81@owncloud.com>
+#
+
+if ! command -v docker >/dev/null 2>&1; then
+ echo "No docker executable found - skipped docker stop"
+ exit 0;
+fi
+
+echo "Docker executable found - stop and remove docker containers"
+
+# retrieve current folder to remove the config from the parent folder
+thisFolder=`echo $0 | sed 's#env/stop-webdav-apache\.sh##'`
+
+if [ -z "$thisFolder" ]; then
+ thisFolder="."
+fi;
+
+# stopping and removing docker containers
+for container in `cat $thisFolder/dockerContainerWebdav.$EXECUTOR_NUMBER.webdav`; do
+ echo "Stopping and removing docker container $container"
+ # kills running container and removes it
+ docker rm -f $container
+done;
+
+# cleanup
+rm $thisFolder/config.webdav.php
+rm $thisFolder/dockerContainerWebdav.$EXECUTOR_NUMBER.webdav
+
diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js
index 0526391df4d..28fd4e87fae 100644
--- a/apps/files_sharing/l10n/is.js
+++ b/apps/files_sharing/l10n/is.js
@@ -27,6 +27,14 @@ OC.L10N.register(
"Invalid ownCloud url" : "Ógild ownCloud-slóð",
"Shared by" : "Deilt af",
"Sharing" : "Deiling",
+ "Could not delete share" : "Tókst ekki að eyða sameign",
+ "Please specify a file or folder path" : "Tiltaktu skrá eða slóð á möppu",
+ "Please specify a valid user" : "Settu inn gilt notandanafn",
+ "Group sharing is disabled by the administrator" : "Deiling innan hóps hefur verið gerð óvirk af kerfisstjóra.",
+ "Please specify a valid group" : "Settu inn gildan hóp",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ógild dagsetning, dagsetningasniðið verður að vera ÁÁÁÁ-MM-DD",
+ "Unknown share type" : "Óþekkt tegund sameignar",
+ "Not a directory" : "Er ekki mappa",
"A file or folder has been <strong>shared</strong>" : "Skjali eða möppu hefur verið <strong>deilt</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Skjali eð möppu hefur verið deilt <strong>frá öðrum þjóni</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Skrá eða mappa í almenningsaðgangi var <strong>sótt</strong>",
diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json
index 0e057d7a727..0e3c8934a07 100644
--- a/apps/files_sharing/l10n/is.json
+++ b/apps/files_sharing/l10n/is.json
@@ -25,6 +25,14 @@
"Invalid ownCloud url" : "Ógild ownCloud-slóð",
"Shared by" : "Deilt af",
"Sharing" : "Deiling",
+ "Could not delete share" : "Tókst ekki að eyða sameign",
+ "Please specify a file or folder path" : "Tiltaktu skrá eða slóð á möppu",
+ "Please specify a valid user" : "Settu inn gilt notandanafn",
+ "Group sharing is disabled by the administrator" : "Deiling innan hóps hefur verið gerð óvirk af kerfisstjóra.",
+ "Please specify a valid group" : "Settu inn gildan hóp",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ógild dagsetning, dagsetningasniðið verður að vera ÁÁÁÁ-MM-DD",
+ "Unknown share type" : "Óþekkt tegund sameignar",
+ "Not a directory" : "Er ekki mappa",
"A file or folder has been <strong>shared</strong>" : "Skjali eða möppu hefur verið <strong>deilt</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Skjali eð möppu hefur verið deilt <strong>frá öðrum þjóni</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Skrá eða mappa í almenningsaðgangi var <strong>sótt</strong>",
diff --git a/apps/files_sharing/l10n/ro.js b/apps/files_sharing/l10n/ro.js
index ac3de75f4e2..2481f77bcc6 100644
--- a/apps/files_sharing/l10n/ro.js
+++ b/apps/files_sharing/l10n/ro.js
@@ -2,12 +2,15 @@ OC.L10N.register(
"files_sharing",
{
"Server to server sharing is not enabled on this server" : "Partajarea server-server nu este activată pe acest server",
+ "The mountpoint name contains invalid characters." : "Numele de montare conţine caractere invalide.",
+ "Not allowed to create a federated share with the same user server" : "Nu este permisă crearea unei partajări federalizate cu acelaşi utilizator server",
"Invalid or untrusted SSL certificate" : "Certificat SSL invalid sau emis de o autoritate care nu se află pe lista celor în care se are încredere",
- "Not a directory" : "Nu este un director",
- "Could not lock path" : "Calea nu a putut fi blocată",
- "Cannot increase permissions" : "Nu se pot extinde permisiunile",
+ "Could not authenticate to remote share, password might be wrong" : "Nu mă pot autentifica la partajarea remote, parola poate fi greşită",
+ "Storage not valid" : "Stocarea este invalidă",
+ "Couldn't add remote share" : "Nu pot adăuga o partajare remote",
"Shared with you" : "Partajat cu tine",
"Shared with others" : "Partajat cu alții",
+ "Shared by link" : "Partajat prin link",
"Nothing shared with you yet" : "Nimic nu e partajat cu tine încă",
"Nothing shared yet" : "Nimic partajat încă",
"Cancel" : "Anulare",
@@ -15,6 +18,9 @@ OC.L10N.register(
"Invalid ownCloud url" : "URL ownCloud invalid",
"Shared by" : "impartite in ",
"Sharing" : "Partajare",
+ "Not a directory" : "Nu este un director",
+ "Could not lock path" : "Calea nu a putut fi blocată",
+ "Cannot increase permissions" : "Nu se pot extinde permisiunile",
"A file or folder has been <strong>shared</strong>" : "Un fișier sau director a fost <strong>partajat</strong>",
"You shared %1$s with %2$s" : "Ai partajat %1$s cu %2$s",
"You shared %1$s with group %2$s" : "Ai partajat %1$s cu grupul %2$s",
diff --git a/apps/files_sharing/l10n/ro.json b/apps/files_sharing/l10n/ro.json
index 2fa1f4a049e..e3f9450bcb5 100644
--- a/apps/files_sharing/l10n/ro.json
+++ b/apps/files_sharing/l10n/ro.json
@@ -1,11 +1,14 @@
{ "translations": {
"Server to server sharing is not enabled on this server" : "Partajarea server-server nu este activată pe acest server",
+ "The mountpoint name contains invalid characters." : "Numele de montare conţine caractere invalide.",
+ "Not allowed to create a federated share with the same user server" : "Nu este permisă crearea unei partajări federalizate cu acelaşi utilizator server",
"Invalid or untrusted SSL certificate" : "Certificat SSL invalid sau emis de o autoritate care nu se află pe lista celor în care se are încredere",
- "Not a directory" : "Nu este un director",
- "Could not lock path" : "Calea nu a putut fi blocată",
- "Cannot increase permissions" : "Nu se pot extinde permisiunile",
+ "Could not authenticate to remote share, password might be wrong" : "Nu mă pot autentifica la partajarea remote, parola poate fi greşită",
+ "Storage not valid" : "Stocarea este invalidă",
+ "Couldn't add remote share" : "Nu pot adăuga o partajare remote",
"Shared with you" : "Partajat cu tine",
"Shared with others" : "Partajat cu alții",
+ "Shared by link" : "Partajat prin link",
"Nothing shared with you yet" : "Nimic nu e partajat cu tine încă",
"Nothing shared yet" : "Nimic partajat încă",
"Cancel" : "Anulare",
@@ -13,6 +16,9 @@
"Invalid ownCloud url" : "URL ownCloud invalid",
"Shared by" : "impartite in ",
"Sharing" : "Partajare",
+ "Not a directory" : "Nu este un director",
+ "Could not lock path" : "Calea nu a putut fi blocată",
+ "Cannot increase permissions" : "Nu se pot extinde permisiunile",
"A file or folder has been <strong>shared</strong>" : "Un fișier sau director a fost <strong>partajat</strong>",
"You shared %1$s with %2$s" : "Ai partajat %1$s cu %2$s",
"You shared %1$s with group %2$s" : "Ai partajat %1$s cu grupul %2$s",
diff --git a/apps/files_sharing/lib/Helper.php b/apps/files_sharing/lib/Helper.php
index b6fc139c33d..e4640f82eb6 100644
--- a/apps/files_sharing/lib/Helper.php
+++ b/apps/files_sharing/lib/Helper.php
@@ -126,7 +126,7 @@ class Helper {
$newHash = '';
if(\OC::$server->getHasher()->verify($password, $linkItem['share_with'], $newHash)) {
// Save item id in session for future requests
- \OC::$server->getSession()->set('public_link_authenticated', $linkItem['id']);
+ \OC::$server->getSession()->set('public_link_authenticated', (string) $linkItem['id']);
/**
* FIXME: Migrate old hashes to new hash format
@@ -156,7 +156,7 @@ class Helper {
else {
// not authenticated ?
if ( ! \OC::$server->getSession()->exists('public_link_authenticated')
- || \OC::$server->getSession()->get('public_link_authenticated') !== $linkItem['id']) {
+ || \OC::$server->getSession()->get('public_link_authenticated') !== (string)$linkItem['id']) {
return false;
}
}
diff --git a/apps/updatenotification/l10n/ru.js b/apps/updatenotification/l10n/ru.js
index 0513fd6aa62..4ee9e1d28b6 100644
--- a/apps/updatenotification/l10n/ru.js
+++ b/apps/updatenotification/l10n/ru.js
@@ -1,14 +1,19 @@
OC.L10N.register(
"updatenotification",
{
+ "Update notifications" : "Уведомления об обновлениях",
"{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о порядке обновления.",
"Updated channel" : "Обновленный канал",
+ "ownCloud core" : "ядро ownCloud",
+ "Update for %1$s to version %2$s is available." : "Доступно обновление для %1$s до версии %2$s.",
"Updater" : "Обновление",
"A new version is available: %s" : "Доступна новая версия: %s",
"Open updater" : "Открыть окно обновления",
"Your version is up to date." : "Версия не требует обновления.",
"Checked on %s" : "Проверено %s",
"Update channel:" : "Канал обновлений:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Вы всегда можете переключится на экспериментальный канал обновлений для получения новейшей версии. Но учтите, что вы не сможете переключиться обратно на канал обновлений для стабильных версий. "
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Вы всегда можете переключится на экспериментальный канал обновлений для получения новейшей версии. Но учтите, что вы не сможете переключиться обратно на канал обновлений для стабильных версий. ",
+ "Notify members of the following groups about available updates:" : "Уведомить членов следующих групп о наличии доступных обновлений:",
+ "Only notification for app updates are available, because the selected update channel for ownCloud itself does not allow notifications." : "Доступны только уведомления для обновлений приложений, так как выбранный канал обновления для самого ownCloud не поддерживает уведомления."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/updatenotification/l10n/ru.json b/apps/updatenotification/l10n/ru.json
index 7d52dae12ab..ddf6d698cd2 100644
--- a/apps/updatenotification/l10n/ru.json
+++ b/apps/updatenotification/l10n/ru.json
@@ -1,12 +1,17 @@
{ "translations": {
+ "Update notifications" : "Уведомления об обновлениях",
"{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о порядке обновления.",
"Updated channel" : "Обновленный канал",
+ "ownCloud core" : "ядро ownCloud",
+ "Update for %1$s to version %2$s is available." : "Доступно обновление для %1$s до версии %2$s.",
"Updater" : "Обновление",
"A new version is available: %s" : "Доступна новая версия: %s",
"Open updater" : "Открыть окно обновления",
"Your version is up to date." : "Версия не требует обновления.",
"Checked on %s" : "Проверено %s",
"Update channel:" : "Канал обновлений:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Вы всегда можете переключится на экспериментальный канал обновлений для получения новейшей версии. Но учтите, что вы не сможете переключиться обратно на канал обновлений для стабильных версий. "
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Вы всегда можете переключится на экспериментальный канал обновлений для получения новейшей версии. Но учтите, что вы не сможете переключиться обратно на канал обновлений для стабильных версий. ",
+ "Notify members of the following groups about available updates:" : "Уведомить членов следующих групп о наличии доступных обновлений:",
+ "Only notification for app updates are available, because the selected update channel for ownCloud itself does not allow notifications." : "Доступны только уведомления для обновлений приложений, так как выбранный канал обновления для самого ownCloud не поддерживает уведомления."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/core/Controller/LoginController.php b/core/Controller/LoginController.php
index eceed11435c..39e1019abe7 100644
--- a/core/Controller/LoginController.php
+++ b/core/Controller/LoginController.php
@@ -134,7 +134,8 @@ class LoginController extends Controller {
}
$parameters['canResetPassword'] = true;
- if (!$this->config->getSystemValue('lost_password_link')) {
+ $parameters['resetPasswordLink'] = $this->config->getSystemValue('lost_password_link', '');
+ if (!$parameters['resetPasswordLink']) {
if (!is_null($user) && $user !== '') {
$userObj = $this->userManager->get($user);
if ($userObj instanceof IUser) {
diff --git a/core/css/styles.css b/core/css/styles.css
index d8d53bd0324..837b3259781 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -862,7 +862,9 @@ span.ui-icon {float: left; margin: 3px 7px 30px 0;}
div.crumb {
float: left;
display: block;
- background: url('../img/breadcrumb.svg') no-repeat right center;
+ background-image: url('../img/breadcrumb.svg');
+ background-repeat: no-repeat;
+ background-position: right center;
height: 44px;
background-size: auto 24px;
}
diff --git a/core/l10n/ru.js b/core/l10n/ru.js
index 74a2c2c1bf6..398fe84160f 100644
--- a/core/l10n/ru.js
+++ b/core/l10n/ru.js
@@ -296,6 +296,10 @@ OC.L10N.register(
"This means only administrators can use the instance." : "Это значит, что только администраторы могут использовать сервер.",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Обратитесь к вашему системному администратору если это сообщение не исчезает или появляется неожиданно.",
"Thank you for your patience." : "Спасибо за терпение.",
+ "Two-step verification" : "Двухшаговая проверка",
+ "Enhanced security has been enabled for your account. Please authenticate using a second factor." : "Для вашей учётной записи включена повышенная безопасность. Пожалуйста, аутентифицируйтесь через второй фактор.",
+ "Please authenticate using the selected factor." : "Пожалуйста, аутентифицируйтесь выбранным фактором.",
+ "An error occured while verifying the token" : "При проверке токена возникла ошибка.",
"You are accessing the server from an untrusted domain." : "Вы пытаетесь получить доступ к серверу с недоверенного домена.",
"Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Пожалуйста, обратитесь к администратору. Если вы являетесь администратором этого сервера, настройте параметры \"trusted_domains\" в файле config/config.php. Пример настройки можно найти в config/config.sample.php.",
"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "В зависимости от конфигурации, как администратор вы можете также внести домен в доверенные с помощью кнопки, расположенной ниже.",
diff --git a/core/l10n/ru.json b/core/l10n/ru.json
index 3c7dfcafe60..fb4bf2a1052 100644
--- a/core/l10n/ru.json
+++ b/core/l10n/ru.json
@@ -294,6 +294,10 @@
"This means only administrators can use the instance." : "Это значит, что только администраторы могут использовать сервер.",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Обратитесь к вашему системному администратору если это сообщение не исчезает или появляется неожиданно.",
"Thank you for your patience." : "Спасибо за терпение.",
+ "Two-step verification" : "Двухшаговая проверка",
+ "Enhanced security has been enabled for your account. Please authenticate using a second factor." : "Для вашей учётной записи включена повышенная безопасность. Пожалуйста, аутентифицируйтесь через второй фактор.",
+ "Please authenticate using the selected factor." : "Пожалуйста, аутентифицируйтесь выбранным фактором.",
+ "An error occured while verifying the token" : "При проверке токена возникла ошибка.",
"You are accessing the server from an untrusted domain." : "Вы пытаетесь получить доступ к серверу с недоверенного домена.",
"Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Пожалуйста, обратитесь к администратору. Если вы являетесь администратором этого сервера, настройте параметры \"trusted_domains\" в файле config/config.php. Пример настройки можно найти в config/config.sample.php.",
"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "В зависимости от конфигурации, как администратор вы можете также внести домен в доверенные с помощью кнопки, расположенной ниже.",
diff --git a/core/templates/login.php b/core/templates/login.php
index 45814fc71d9..5b0fd97cfd8 100644
--- a/core/templates/login.php
+++ b/core/templates/login.php
@@ -57,7 +57,7 @@ script('core', [
</p>
<?php if (!empty($_['invalidpassword']) && !empty($_['canResetPassword'])) { ?>
- <a id="lost-password" class="warning" href="">
+ <a id="lost-password" class="warning" href="<?php p($_['resetPasswordLink']); ?>">
<?php p($l->t('Wrong password. Reset it?')); ?>
</a>
<?php } else if (!empty($_['invalidpassword'])) { ?>
diff --git a/lib/l10n/ro.js b/lib/l10n/ro.js
index 8171b8ece23..5c5b7844cf7 100644
--- a/lib/l10n/ro.js
+++ b/lib/l10n/ro.js
@@ -53,9 +53,12 @@ OC.L10N.register(
"PostgreSQL username and/or password not valid" : "Nume utilizator și/sau parolă PostgreSQL greșită",
"Set an admin username." : "Setează un nume de administrator.",
"Set an admin password." : "Setează o parolă de administrator.",
+ "Invalid Federated Cloud ID" : "ID invalid cloud federalizat",
"%s shared »%s« with you" : "%s Partajat »%s« cu tine de",
"You are not allowed to share %s" : "Nu există permisiunea de partajare %s",
"Sharing %s failed, because this item is already shared with %s" : "Partajarea %s a eșuat deoarece acest element este deja partajat cu %s",
+ "Not allowed to create a federated share with the same user" : "Nu este permisă crearea unei partajări federalizate cu acelaşi utilizator",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Partajarea %s a eşuat, nu pot găsi %s, poate serverul nu poate fi contactat.",
"Share type %s is not valid for %s" : "Tipul partajării %s nu este valid pentru %s",
"Could not find category \"%s\"" : "Cloud nu a gasit categoria \"%s\"",
"Apps" : "Aplicații",
diff --git a/lib/l10n/ro.json b/lib/l10n/ro.json
index 990efbad88e..566f6d01123 100644
--- a/lib/l10n/ro.json
+++ b/lib/l10n/ro.json
@@ -51,9 +51,12 @@
"PostgreSQL username and/or password not valid" : "Nume utilizator și/sau parolă PostgreSQL greșită",
"Set an admin username." : "Setează un nume de administrator.",
"Set an admin password." : "Setează o parolă de administrator.",
+ "Invalid Federated Cloud ID" : "ID invalid cloud federalizat",
"%s shared »%s« with you" : "%s Partajat »%s« cu tine de",
"You are not allowed to share %s" : "Nu există permisiunea de partajare %s",
"Sharing %s failed, because this item is already shared with %s" : "Partajarea %s a eșuat deoarece acest element este deja partajat cu %s",
+ "Not allowed to create a federated share with the same user" : "Nu este permisă crearea unei partajări federalizate cu acelaşi utilizator",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Partajarea %s a eşuat, nu pot găsi %s, poate serverul nu poate fi contactat.",
"Share type %s is not valid for %s" : "Tipul partajării %s nu este valid pentru %s",
"Could not find category \"%s\"" : "Cloud nu a gasit categoria \"%s\"",
"Apps" : "Aplicații",
diff --git a/lib/private/Encryption/DecryptAll.php b/lib/private/Encryption/DecryptAll.php
index 973036fe14d..8676bc09575 100644
--- a/lib/private/Encryption/DecryptAll.php
+++ b/lib/private/Encryption/DecryptAll.php
@@ -133,6 +133,7 @@ class DecryptAll {
/**
* iterate over all user and encrypt their files
+ *
* @param string $user which users files should be decrypted, default = all users
*/
protected function decryptAllUsersFiles($user = '') {
@@ -200,9 +201,9 @@ class DecryptAll {
$this->setupUserFS($uid);
$directories = array();
- $directories[] = '/' . $uid . '/files';
+ $directories[] = '/' . $uid . '/files';
- while($root = array_pop($directories)) {
+ while ($root = array_pop($directories)) {
$content = $this->rootView->getDirectoryContent($root);
foreach ($content as $file) {
$path = $root . '/' . $file['name'];
@@ -213,9 +214,14 @@ class DecryptAll {
try {
$progress->setMessage("decrypt files for user $userCount: $path");
$progress->advance();
- if ($this->decryptFile($path) === false) {
+ if ($file->isEncrypted() === false) {
$progress->setMessage("decrypt files for user $userCount: $path (already decrypted)");
$progress->advance();
+ } else {
+ if ($this->decryptFile($path) === false) {
+ $progress->setMessage("decrypt files for user $userCount: $path (already decrypted)");
+ $progress->advance();
+ }
}
} catch (\Exception $e) {
if (isset($this->failed[$uid])) {
diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php
index 04910ece684..0d41b3bab02 100644
--- a/lib/private/Files/Storage/DAV.php
+++ b/lib/private/Files/Storage/DAV.php
@@ -449,7 +449,16 @@ class DAV extends Common {
if ($this->file_exists($path)) {
try {
$this->statCache->remove($path);
- $this->client->proppatch($this->encodePath($path), array('{DAV:}lastmodified' => $mtime));
+ $this->client->proppatch($this->encodePath($path), ['{DAV:}lastmodified' => $mtime]);
+ // non-owncloud clients might not have accepted the property, need to recheck it
+ $response = $this->client->propfind($this->encodePath($path), ['{DAV:}getlastmodified'], 0);
+ if (isset($response['{DAV:}getlastmodified'])) {
+ $remoteMtime = strtotime($response['{DAV:}getlastmodified']);
+ if ($remoteMtime !== $mtime) {
+ // server has not accepted the mtime
+ return false;
+ }
+ }
} catch (ClientHttpException $e) {
if ($e->getHttpStatus() === 501) {
return false;
@@ -506,13 +515,18 @@ class DAV extends Common {
$path1 = $this->cleanPath($path1);
$path2 = $this->cleanPath($path2);
try {
+ // overwrite directory ?
+ if ($this->is_dir($path2)) {
+ // needs trailing slash in destination
+ $path2 = rtrim($path2, '/') . '/';
+ }
$this->client->request(
'MOVE',
$this->encodePath($path1),
null,
- array(
- 'Destination' => $this->createBaseUri() . $this->encodePath($path2)
- )
+ [
+ 'Destination' => $this->createBaseUri() . $this->encodePath($path2),
+ ]
);
$this->statCache->clear($path1 . '/');
$this->statCache->clear($path2 . '/');
@@ -530,10 +544,22 @@ class DAV extends Common {
/** {@inheritdoc} */
public function copy($path1, $path2) {
$this->init();
- $path1 = $this->encodePath($this->cleanPath($path1));
- $path2 = $this->createBaseUri() . $this->encodePath($this->cleanPath($path2));
+ $path1 = $this->cleanPath($path1);
+ $path2 = $this->cleanPath($path2);
try {
- $this->client->request('COPY', $path1, null, array('Destination' => $path2));
+ // overwrite directory ?
+ if ($this->is_dir($path2)) {
+ // needs trailing slash in destination
+ $path2 = rtrim($path2, '/') . '/';
+ }
+ $this->client->request(
+ 'COPY',
+ $this->encodePath($path1),
+ null,
+ [
+ 'Destination' => $this->createBaseUri() . $this->encodePath($path2),
+ ]
+ );
$this->statCache->clear($path2 . '/');
$this->statCache->set($path2, true);
$this->removeCachedFile($path2);
diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php
index b1ad71d347f..bcda779e733 100644
--- a/lib/private/Share/Share.php
+++ b/lib/private/Share/Share.php
@@ -2493,7 +2493,7 @@ class Share extends Constants {
}
if ( \OC::$server->getSession()->exists('public_link_authenticated')
- && \OC::$server->getSession()->get('public_link_authenticated') === $linkItem['id'] ) {
+ && \OC::$server->getSession()->get('public_link_authenticated') === (string)$linkItem['id'] ) {
return true;
}
diff --git a/settings/admin.php b/settings/admin.php
index 5bddd4bc5e5..6fb65b013e6 100644
--- a/settings/admin.php
+++ b/settings/admin.php
@@ -103,6 +103,19 @@ $externalBackends = (count($backends) > 1) ? true : false;
$template->assign('encryptionReady', \OC::$server->getEncryptionManager()->isReady());
$template->assign('externalBackendsEnabled', $externalBackends);
+/** @var \Doctrine\DBAL\Connection $connection */
+$connection = \OC::$server->getDatabaseConnection();
+try {
+ if ($connection->getDatabasePlatform() instanceof \Doctrine\DBAL\Platforms\SqlitePlatform) {
+ $template->assign('invalidTransactionIsolationLevel', false);
+ } else {
+ $template->assign('invalidTransactionIsolationLevel', $connection->getTransactionIsolation() !== \Doctrine\DBAL\Connection::TRANSACTION_READ_COMMITTED);
+ }
+} catch (\Doctrine\DBAL\DBALException $e) {
+ // ignore
+ $template->assign('invalidTransactionIsolationLevel', false);
+}
+
$encryptionModules = \OC::$server->getEncryptionManager()->getEncryptionModules();
$defaultEncryptionModuleId = \OC::$server->getEncryptionManager()->getDefaultEncryptionModuleId();
diff --git a/settings/l10n/ro.js b/settings/l10n/ro.js
index ecc30efb315..4f965ce5b74 100644
--- a/settings/l10n/ro.js
+++ b/settings/l10n/ro.js
@@ -9,6 +9,7 @@ OC.L10N.register(
"Unable to change password" : "Imposibil de schimbat parola",
"Enabled" : "Activat",
"Not enabled" : "Dezactivat",
+ "Federated Cloud Sharing" : "Partajare federalizata cloud",
"Migration Completed" : "Migrare încheiată",
"Group already exists." : "Grupul există deja.",
"Unable to add group." : "Nu se poate adăuga grupul.",
diff --git a/settings/l10n/ro.json b/settings/l10n/ro.json
index 14a8a533cca..05540e9da90 100644
--- a/settings/l10n/ro.json
+++ b/settings/l10n/ro.json
@@ -7,6 +7,7 @@
"Unable to change password" : "Imposibil de schimbat parola",
"Enabled" : "Activat",
"Not enabled" : "Dezactivat",
+ "Federated Cloud Sharing" : "Partajare federalizata cloud",
"Migration Completed" : "Migrare încheiată",
"Group already exists." : "Grupul există deja.",
"Unable to add group." : "Nu se poate adăuga grupul.",
diff --git a/settings/templates/admin.php b/settings/templates/admin.php
index 6cf4b43c162..0cdefe10083 100644
--- a/settings/templates/admin.php
+++ b/settings/templates/admin.php
@@ -97,6 +97,15 @@ if (!$_['isAnnotationsWorking']) {
<?php
}
+// Is the Transaction isolation level READ_COMMITED?
+if ($_['invalidTransactionIsolationLevel']) {
+ ?>
+ <li>
+ <?php p($l->t('Your database does not run with "READ COMMITED" transaction isolation level. This can cause problems when multiple actions are executed in parallel.')); ?>
+ </li>
+<?php
+}
+
// Windows Warning
if ($_['WindowsWarning']) {
?>
diff --git a/tests/lib/Encryption/DecryptAllTest.php b/tests/lib/Encryption/DecryptAllTest.php
index 85fbe3e0ed9..ffcbbc74a99 100644
--- a/tests/lib/Encryption/DecryptAllTest.php
+++ b/tests/lib/Encryption/DecryptAllTest.php
@@ -26,6 +26,7 @@ namespace Test\Encryption;
use OC\Encryption\DecryptAll;
use OC\Encryption\Exceptions\DecryptionFailedException;
use OC\Encryption\Manager;
+use OC\Files\FileInfo;
use OC\Files\View;
use OCP\IUserManager;
use Test\TestCase;
@@ -242,15 +243,15 @@ class DecryptAllTest extends TestCase {
$this->view->expects($this->at(0))->method('getDirectoryContent')
->with('/user1/files')->willReturn(
[
- ['name' => 'foo', 'type'=>'dir'],
- ['name' => 'bar', 'type'=>'file'],
+ new FileInfo('path', null, 'intPath', ['name' => 'foo', 'type'=>'dir'], null),
+ new FileInfo('path', null, 'intPath', ['name' => 'bar', 'type'=>'file', 'encrypted'=>true], null)
]
);
$this->view->expects($this->at(3))->method('getDirectoryContent')
->with('/user1/files/foo')->willReturn(
[
- ['name' => 'subfile', 'type'=>'file']
+ new FileInfo('path', null, 'intPath', ['name' => 'subfile', 'type'=>'file', 'encrypted'=>true], null)
]
);
diff --git a/tests/lib/Share/ShareTest.php b/tests/lib/Share/ShareTest.php
index 339193e7ff2..42adee21d0c 100644
--- a/tests/lib/Share/ShareTest.php
+++ b/tests/lib/Share/ShareTest.php
@@ -990,7 +990,7 @@ class ShareTest extends \Test\TestCase {
* @param $item
*/
public function testCheckPasswordProtectedShare($expected, $item) {
- \OC::$server->getSession()->set('public_link_authenticated', 100);
+ \OC::$server->getSession()->set('public_link_authenticated', '100');
$result = \OCP\Share::checkPasswordProtectedShare($item);
$this->assertEquals($expected, $result);
}
@@ -1002,8 +1002,12 @@ class ShareTest extends \Test\TestCase {
array(true, array('share_with' => '')),
array(true, array('share_with' => '1234567890', 'share_type' => '1')),
array(true, array('share_with' => '1234567890', 'share_type' => 1)),
+ array(true, array('share_with' => '1234567890', 'share_type' => '3', 'id' => '100')),
+ array(true, array('share_with' => '1234567890', 'share_type' => 3, 'id' => '100')),
array(true, array('share_with' => '1234567890', 'share_type' => '3', 'id' => 100)),
array(true, array('share_with' => '1234567890', 'share_type' => 3, 'id' => 100)),
+ array(false, array('share_with' => '1234567890', 'share_type' => '3', 'id' => '101')),
+ array(false, array('share_with' => '1234567890', 'share_type' => 3, 'id' => '101')),
array(false, array('share_with' => '1234567890', 'share_type' => '3', 'id' => 101)),
array(false, array('share_with' => '1234567890', 'share_type' => 3, 'id' => 101)),
);