diff options
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)), ); |