diff options
Diffstat (limited to 'apps/dav')
7 files changed, 158 insertions, 25 deletions
diff --git a/apps/dav/l10n/da.js b/apps/dav/l10n/da.js new file mode 100644 index 00000000000..dc32493340c --- /dev/null +++ b/apps/dav/l10n/da.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "dav", + { + "Calendar" : "Kalender", + "Todos" : "Opgaver", + "{actor} created calendar {calendar}" : "{actor} oprettede kalenderen {calendar}", + "You created calendar {calendar}" : "Du oprettede kalenderen {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} sletede kalenderen {calendar}", + "You deleted calendar {calendar}" : "Du slettede kalenderen {calendar}", + "{actor} updated calendar {calendar}" : "{actor} opdaterede kalenderen {calendar}", + "You updated calendar {calendar}" : "Du opdaterede kalenderen {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} delte kalenderen {calendar} med dig", + "You shared calendar {calendar} with {user}" : "Du delte kalenderen {calendar} med {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} delte kalenderen {calendar} med {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} fjernede delingen af {calendar} fra dig", + "You unshared calendar {calendar} from {user}" : "Du fjernede delingen af {calendar} fra {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} fjernede delingen af {calendar} fra {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} fjernede delingen af {calendar} fra sig selv", + "You shared calendar {calendar} with group {group}" : "Du delte kalenderen {calendar} med gruppen {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} delte kalenderen {calendar} med gruppen {group}", + "You unshared calendar {calendar} from group {group}" : "Du fjernede delingen af {calendar} fra gruppen {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} fjernede deling af kalenderen {calendar} fra gruppen {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} oprettede begivenheden {event} i kalenderen {calendar}", + "You created event {event} in calendar {calendar}" : "Du oprettede begivenheden {event} i kalenderen {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} slettede begivenheden {event} fra kalenderen {calendar}", + "You deleted event {event} from calendar {calendar}" : "Du slettede begivenheden {event} fra kalenderen {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} opdaterede begivenheden {event} i kalenderen {calendar}", + "You updated event {event} in calendar {calendar}" : "Du opdaterede begivenheden {event} i kalenderen {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} oprettede en opgave {todo} i listen {calendar}", + "You created todo {todo} in list {calendar}" : "Du oprettede opgaven {todo} i listen {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} slettede opgaven {todo} fra listen {calendar}", + "You deleted todo {todo} from list {calendar}" : "Du slettede opgaven {todo} fra listen {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} opdaterede opgaven {todo} i listen {calendar}", + "You updated todo {todo} in list {calendar}" : "Du opdaterede opgaven {todo} i listen {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} løste opgaven {todo} i listen {calendar}", + "You solved todo {todo} in list {calendar}" : "Du løste opgaven {todo} i listen {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} genåbnede opgaven {todo} i listen {calendar}", + "You reopened todo {todo} in list {calendar}" : "Du genåbnede opgaven {todo} i listen {calendar}", + "A <strong>calendar</strong> was modified" : "En <strong>kalender</strong> er blevet ændret", + "A calendar <strong>event</strong> was modified" : "En kalender <strong>begivenhed</strong> er blevet ændret", + "A calendar <strong>todo</strong> was modified" : "En kalender <strong>opgave</strong> blev ændret", + "Contact birthdays" : "Kontakt fødselsdag", + "Personal" : "Personligt", + "Contacts" : "Kontakter", + "WebDAV" : "WebDAV", + "Technical details" : "Tekniske detaljer", + "Remote Address: %s" : "Fjernadresse: %s", + "Request ID: %s" : "Forespørgsels-ID: %s" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/da.json b/apps/dav/l10n/da.json new file mode 100644 index 00000000000..488a34cc796 --- /dev/null +++ b/apps/dav/l10n/da.json @@ -0,0 +1,48 @@ +{ "translations": { + "Calendar" : "Kalender", + "Todos" : "Opgaver", + "{actor} created calendar {calendar}" : "{actor} oprettede kalenderen {calendar}", + "You created calendar {calendar}" : "Du oprettede kalenderen {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} sletede kalenderen {calendar}", + "You deleted calendar {calendar}" : "Du slettede kalenderen {calendar}", + "{actor} updated calendar {calendar}" : "{actor} opdaterede kalenderen {calendar}", + "You updated calendar {calendar}" : "Du opdaterede kalenderen {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} delte kalenderen {calendar} med dig", + "You shared calendar {calendar} with {user}" : "Du delte kalenderen {calendar} med {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} delte kalenderen {calendar} med {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} fjernede delingen af {calendar} fra dig", + "You unshared calendar {calendar} from {user}" : "Du fjernede delingen af {calendar} fra {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} fjernede delingen af {calendar} fra {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} fjernede delingen af {calendar} fra sig selv", + "You shared calendar {calendar} with group {group}" : "Du delte kalenderen {calendar} med gruppen {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} delte kalenderen {calendar} med gruppen {group}", + "You unshared calendar {calendar} from group {group}" : "Du fjernede delingen af {calendar} fra gruppen {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} fjernede deling af kalenderen {calendar} fra gruppen {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} oprettede begivenheden {event} i kalenderen {calendar}", + "You created event {event} in calendar {calendar}" : "Du oprettede begivenheden {event} i kalenderen {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} slettede begivenheden {event} fra kalenderen {calendar}", + "You deleted event {event} from calendar {calendar}" : "Du slettede begivenheden {event} fra kalenderen {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} opdaterede begivenheden {event} i kalenderen {calendar}", + "You updated event {event} in calendar {calendar}" : "Du opdaterede begivenheden {event} i kalenderen {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} oprettede en opgave {todo} i listen {calendar}", + "You created todo {todo} in list {calendar}" : "Du oprettede opgaven {todo} i listen {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} slettede opgaven {todo} fra listen {calendar}", + "You deleted todo {todo} from list {calendar}" : "Du slettede opgaven {todo} fra listen {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} opdaterede opgaven {todo} i listen {calendar}", + "You updated todo {todo} in list {calendar}" : "Du opdaterede opgaven {todo} i listen {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} løste opgaven {todo} i listen {calendar}", + "You solved todo {todo} in list {calendar}" : "Du løste opgaven {todo} i listen {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} genåbnede opgaven {todo} i listen {calendar}", + "You reopened todo {todo} in list {calendar}" : "Du genåbnede opgaven {todo} i listen {calendar}", + "A <strong>calendar</strong> was modified" : "En <strong>kalender</strong> er blevet ændret", + "A calendar <strong>event</strong> was modified" : "En kalender <strong>begivenhed</strong> er blevet ændret", + "A calendar <strong>todo</strong> was modified" : "En kalender <strong>opgave</strong> blev ændret", + "Contact birthdays" : "Kontakt fødselsdag", + "Personal" : "Personligt", + "Contacts" : "Kontakter", + "WebDAV" : "WebDAV", + "Technical details" : "Tekniske detaljer", + "Remote Address: %s" : "Fjernadresse: %s", + "Request ID: %s" : "Forespørgsels-ID: %s" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php b/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php index 4f7c2286827..dce2f9c45e4 100644 --- a/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php +++ b/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php @@ -94,26 +94,9 @@ class ExceptionLoggerPlugin extends \Sabre\DAV\ServerPlugin { $level = \OCP\Util::DEBUG; } - $message = $ex->getMessage(); - if ($ex instanceof Exception) { - if (empty($message)) { - $response = new Response($ex->getHTTPCode()); - $message = $response->getStatusText(); - } - $message = "HTTP/1.1 {$ex->getHTTPCode()} $message"; - } - - $user = \OC_User::getUser(); - - $exception = [ - 'Message' => $message, - 'Exception' => $exceptionClass, - 'Code' => $ex->getCode(), - 'Trace' => $ex->getTraceAsString(), - 'File' => $ex->getFile(), - 'Line' => $ex->getLine(), - 'User' => $user, - ]; - $this->logger->log($level, 'Exception: ' . json_encode($exception), ['app' => $this->appName]); + $this->logger->logException($ex, [ + 'app' => $this->appName, + 'level' => $level, + ]); } } diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php index 7a8bdb1da75..ab04890d6c7 100644 --- a/apps/dav/lib/Connector/Sabre/File.php +++ b/apps/dav/lib/Connector/Sabre/File.php @@ -184,7 +184,7 @@ class File extends Node implements IFile { $fileExists = $storage->file_exists($internalPath); } if (!$run || $renameOkay === false || $fileExists === false) { - \OCP\Util::writeLog('webdav', 'renaming part file to final file failed', \OCP\Util::ERROR); + \OCP\Util::writeLog('webdav', 'renaming part file to final file failed ($run: ' . ( $run ? 'true' : 'false' ) . ', $renameOkay: ' . ( $renameOkay ? 'true' : 'false' ) . ', $fileExists: ' . ( $fileExists ? 'true' : 'false' ) . ')', \OCP\Util::ERROR); throw new Exception('Could not rename part file to final file'); } } catch (ForbiddenException $ex) { diff --git a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php index 8088ee6dc4d..85ede2ad681 100644 --- a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php @@ -71,13 +71,13 @@ class ExceptionLoggerPluginTest extends TestCase { $this->plugin->logException($exception); $this->assertEquals($expectedLogLevel, $this->logger->level); - $this->assertStringStartsWith('Exception: {"Message":"' . $expectedMessage, $this->logger->message); + $this->assertStringStartsWith('Exception: {"Exception":' . json_encode(get_class($exception)) . ',"Message":"' . $expectedMessage . '",', $this->logger->message); } public function providesExceptions() { return [ - [0, 'HTTP\/1.1 404 Not Found', new NotFound()], - [4, 'HTTP\/1.1 400 This path leads to nowhere', new InvalidPath('This path leads to nowhere')] + [0, '', new NotFound()], + [4, 'This path leads to nowhere', new InvalidPath('This path leads to nowhere')] ]; } diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php new file mode 100644 index 00000000000..480baab6baf --- /dev/null +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php @@ -0,0 +1,50 @@ +<?php +/** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest; + +use OC\Files\View; +use Test\Traits\EncryptionTrait; + +/** + * Class EncryptionMasterKeyUploadTest + * + * @group DB + * + * @package OCA\DAV\Tests\Unit\Connector\Sabre\RequestTest + */ +class EncryptionMasterKeyUploadTest extends UploadTest { + use EncryptionTrait; + + protected function setupUser($name, $password) { + $this->createUser($name, $password); + $tmpFolder = \OC::$server->getTempManager()->getTemporaryFolder(); + $this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]); + // we use the master key + \OC::$server->getConfig()->setAppValue('encryption', 'useMasterKey', '1'); + $this->setupForUser($name, $password); + $this->loginWithEncryption($name); + return new View('/' . $name . '/files'); + } +} diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php index e65d58b816f..c0cba121386 100644 --- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php @@ -41,6 +41,8 @@ class EncryptionUploadTest extends UploadTest { $this->createUser($name, $password); $tmpFolder = \OC::$server->getTempManager()->getTemporaryFolder(); $this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]); + // we use per-user keys + \OC::$server->getConfig()->setAppValue('encryption', 'useMasterKey', '0'); $this->setupForUser($name, $password); $this->loginWithEncryption($name); return new View('/' . $name . '/files'); |