diff options
120 files changed, 715 insertions, 305 deletions
diff --git a/apps/dav/lib/connector/sabre/filesplugin.php b/apps/dav/lib/connector/sabre/filesplugin.php index e85a67a8759..1c78e9dc845 100644 --- a/apps/dav/lib/connector/sabre/filesplugin.php +++ b/apps/dav/lib/connector/sabre/filesplugin.php @@ -97,7 +97,7 @@ class FilesPlugin extends \Sabre\DAV\ServerPlugin { */ public function initialize(\Sabre\DAV\Server $server) { - $server->xmlNamespaces[self::NS_OWNCLOUD] = 'oc'; + $server->xml->namespaceMap[self::NS_OWNCLOUD] = 'oc'; $server->protectedProperties[] = self::FILEID_PROPERTYNAME; $server->protectedProperties[] = self::INTERNAL_FILEID_PROPERTYNAME; $server->protectedProperties[] = self::PERMISSIONS_PROPERTYNAME; diff --git a/apps/dav/lib/connector/sabre/tagsplugin.php b/apps/dav/lib/connector/sabre/tagsplugin.php index 2f5937da25a..778d43f1b3a 100644 --- a/apps/dav/lib/connector/sabre/tagsplugin.php +++ b/apps/dav/lib/connector/sabre/tagsplugin.php @@ -107,7 +107,7 @@ class TagsPlugin extends \Sabre\DAV\ServerPlugin */ public function initialize(\Sabre\DAV\Server $server) { - $server->xmlNamespaces[self::NS_OWNCLOUD] = 'oc'; + $server->xml->namespacesMap[self::NS_OWNCLOUD] = 'oc'; $server->propertyMap[self::TAGS_PROPERTYNAME] = 'OCA\\DAV\\Connector\\Sabre\\TagList'; $this->server = $server; diff --git a/apps/files/ajax/scan.php b/apps/files/ajax/scan.php deleted file mode 100644 index 7710a28a8ca..00000000000 --- a/apps/files/ajax/scan.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php -/** - * @author Bart Visscher <bartv@thisnet.nl> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> - * @author Lukas Reschke <lukas@owncloud.com> - * @author Robin Appelman <icewind@owncloud.com> - * @author Vincent Petry <pvince81@owncloud.com> - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @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/> - * - */ -set_time_limit(0); //scanning can take ages - -\OCP\JSON::checkLoggedIn(); -\OCP\JSON::callCheck(); - -\OC::$server->getSession()->close(); - -$force = (isset($_GET['force']) and ($_GET['force'] === 'true')); -$dir = isset($_GET['dir']) ? (string)$_GET['dir'] : ''; -if (isset($_GET['users'])) { - \OCP\JSON::checkAdminUser(); - if ($_GET['users'] === 'all') { - $users = OC_User::getUsers(); - } else { - $users = json_decode($_GET['users']); - } -} else { - $users = array(OC_User::getUser()); -} - -$eventSource = \OC::$server->createEventSource(); -$listener = new ScanListener($eventSource); - -foreach ($users as $user) { - $eventSource->send('user', $user); - $scanner = new \OC\Files\Utils\Scanner($user, \OC::$server->getDatabaseConnection(), \OC::$server->getLogger()); - $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', array($listener, 'file')); - try { - if ($force) { - $scanner->scan($dir); - } else { - $scanner->backgroundScan($dir); - } - } catch (\Exception $e) { - $eventSource->send('error', get_class($e) . ': ' . $e->getMessage()); - } -} - -$eventSource->send('done', $listener->getCount()); -$eventSource->close(); - -class ScanListener { - - private $fileCount = 0; - private $lastCount = 0; - - /** - * @var \OCP\IEventSource event source to pass events to - */ - private $eventSource; - - /** - * @param \OCP\IEventSource $eventSource - */ - public function __construct($eventSource) { - $this->eventSource = $eventSource; - } - - public function file() { - $this->fileCount++; - if ($this->fileCount > $this->lastCount + 20) { //send a count update every 20 files - $this->lastCount = $this->fileCount; - $this->eventSource->send('count', $this->fileCount); - } - } - - public function getCount() { - return $this->fileCount; - } -} diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml index 4ab226f3968..df12b87397d 100644 --- a/apps/files/appinfo/info.xml +++ b/apps/files/appinfo/info.xml @@ -8,7 +8,7 @@ <shipped>true</shipped> <standalone/> <default_enable/> - <version>1.4.0</version> + <version>1.4.1</version> <types> <filesystem/> </types> diff --git a/apps/files/appinfo/install.php b/apps/files/appinfo/install.php new file mode 100644 index 00000000000..b47bf6ac4b0 --- /dev/null +++ b/apps/files/appinfo/install.php @@ -0,0 +1,26 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @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/> + * + */ + +// Cron job for scanning user storages +$jobList = \OC::$server->getJobList(); +$job = 'OCA\Files\BackgroundJob\ScanFiles'; +\OC::$server->getJobList()->add($job); + diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php index 2bb913c30a6..844b73b3c41 100644 --- a/apps/files/appinfo/routes.php +++ b/apps/files/appinfo/routes.php @@ -75,8 +75,6 @@ $this->create('files_ajax_newfolder', 'ajax/newfolder.php') ->actionInclude('files/ajax/newfolder.php'); $this->create('files_ajax_rename', 'ajax/rename.php') ->actionInclude('files/ajax/rename.php'); -$this->create('files_ajax_scan', 'ajax/scan.php') - ->actionInclude('files/ajax/scan.php'); $this->create('files_ajax_upload', 'ajax/upload.php') ->actionInclude('files/ajax/upload.php'); diff --git a/apps/files/appinfo/update.php b/apps/files/appinfo/update.php index 6084435fa5a..d181dff560b 100644 --- a/apps/files/appinfo/update.php +++ b/apps/files/appinfo/update.php @@ -96,6 +96,11 @@ if ($installedVersion === '1.1.9' && ( } } +// Add cron job for scanning user storages +$jobList = \OC::$server->getJobList(); +$job = 'OCA\Files\BackgroundJob\ScanFiles'; +\OC::$server->getJobList()->add($job); + /** * migrate old constant DEBUG to new config value 'debug' * diff --git a/apps/files/js/files.js b/apps/files/js/files.js index e33b8354437..6bf4a4cfe5a 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -243,9 +243,6 @@ e.preventDefault(); // prevent browser from doing anything, if file isn't dropped in dropZone }); - //do a background scan if needed - scanFiles(); - // display storage warnings setTimeout(Files.displayStorageWarnings, 100); @@ -323,51 +320,6 @@ OCA.Files.Files = Files; })(); -function scanFiles(force, dir, users) { - if (!OC.currentUser) { - return; - } - - if (!dir) { - dir = ''; - } - force = !!force; //cast to bool - scanFiles.scanning = true; - var scannerEventSource; - if (users) { - var usersString; - if (users === 'all') { - usersString = users; - } else { - usersString = JSON.stringify(users); - } - scannerEventSource = new OC.EventSource(OC.filePath('files','ajax','scan.php'),{force: force,dir: dir, users: usersString}); - } else { - scannerEventSource = new OC.EventSource(OC.filePath('files','ajax','scan.php'),{force: force,dir: dir}); - } - scanFiles.cancel = scannerEventSource.close.bind(scannerEventSource); - scannerEventSource.listen('count',function(count) { - console.log(count + ' files scanned'); - }); - scannerEventSource.listen('folder',function(path) { - console.log('now scanning ' + path); - }); - scannerEventSource.listen('error',function(message) { - console.error('Scanner error: ', message); - }); - scannerEventSource.listen('done',function(count) { - scanFiles.scanning=false; - console.log('done after ' + count + ' files'); - if (OCA.Files.App) { - OCA.Files.App.fileList.updateStorageStatistics(true); - } - }); - scannerEventSource.listen('user',function(user) { - console.log('scanning files for ' + user); - }); -} -scanFiles.scanning=false; - // TODO: move to FileList var createDragShadow = function(event) { // FIXME: inject file list instance somehow diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index cec0cfda0ca..b4e853d4b2d 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -40,6 +40,17 @@ OC.L10N.register( "Unable to determine date" : "Datum konnte nicht ermittelt werden", "This operation is forbidden" : "Diese Operation ist nicht erlaubt", "This directory is unavailable, please check the logs or contact the administrator" : "Dieses Verzeichnis ist nicht verfügbar, bitte überprüfe die Logdateien oder kontaktiere den Administrator", + "Could not move \"{file}\", target exists" : "Konnte nicht verschieben \"{file}\", Ziel existiert bereits", + "Could not move \"{file}\"" : "Konnte nicht verschieben \"{file}\"", + "{newName} already exists" : "{newName} existiert bereits", + "Could not rename \"{fileName}\", it does not exist any more" : "Konnte nicht umbennen \"{fileName}\", da es nicht mehr existiert", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{targetName}\" wird bereits bereits in diesem Ordner benutzt \"{dir}\". Bitte nimm einen anderen Namen.", + "Could not rename \"{fileName}\"" : "Die Datei konnte nicht umbenannt werden \"{fileName}\"", + "Could not create file \"{file}\"" : "Die Datei konnte nicht erstellt werden \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "Die Datei konnte nicht erstellt werden \"{file}\", da sie bereits existiert.", + "Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"", + "Could not create folder \"{dir}\" because it already exists" : "Der Ordner konnte nicht erstellt werden \"{dir}\", da dieser bereits existiert", + "Error deleting file \"{fileName}\"." : "Fehler beim löschen der Datei \"{fileName}\"", "No entries in this folder match '{filter}'" : "Keine Einträge in diesem Ordner stimmen mit '{filter}' überein", "Name" : "Name", "Size" : "Größe", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index 4e7a6e1bf09..2176c57d0fc 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -38,6 +38,17 @@ "Unable to determine date" : "Datum konnte nicht ermittelt werden", "This operation is forbidden" : "Diese Operation ist nicht erlaubt", "This directory is unavailable, please check the logs or contact the administrator" : "Dieses Verzeichnis ist nicht verfügbar, bitte überprüfe die Logdateien oder kontaktiere den Administrator", + "Could not move \"{file}\", target exists" : "Konnte nicht verschieben \"{file}\", Ziel existiert bereits", + "Could not move \"{file}\"" : "Konnte nicht verschieben \"{file}\"", + "{newName} already exists" : "{newName} existiert bereits", + "Could not rename \"{fileName}\", it does not exist any more" : "Konnte nicht umbennen \"{fileName}\", da es nicht mehr existiert", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{targetName}\" wird bereits bereits in diesem Ordner benutzt \"{dir}\". Bitte nimm einen anderen Namen.", + "Could not rename \"{fileName}\"" : "Die Datei konnte nicht umbenannt werden \"{fileName}\"", + "Could not create file \"{file}\"" : "Die Datei konnte nicht erstellt werden \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "Die Datei konnte nicht erstellt werden \"{file}\", da sie bereits existiert.", + "Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"", + "Could not create folder \"{dir}\" because it already exists" : "Der Ordner konnte nicht erstellt werden \"{dir}\", da dieser bereits existiert", + "Error deleting file \"{fileName}\"." : "Fehler beim löschen der Datei \"{fileName}\"", "No entries in this folder match '{filter}'" : "Keine Einträge in diesem Ordner stimmen mit '{filter}' überein", "Name" : "Name", "Size" : "Größe", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index dd8759c3f0c..7bc628b8f9b 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -40,6 +40,15 @@ OC.L10N.register( "Unable to determine date" : "No se pudo determinar la fecha", "This operation is forbidden" : "Esta operación está prohibida", "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verifique los registros o contáctese con el administrador", + "Could not move \"{file}\", target exists" : "No se pudo mover \"{file}\", destino ya existe", + "Could not move \"{file}\"" : "No se pudo mover \"{file}\"", + "{newName} already exists" : "{newName} ya existe", + "Could not rename \"{fileName}\"" : "No se pudo renombrar \"{fileName}\"", + "Could not create file \"{file}\"" : "No se pudo crear archivo \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "No se pudo crear archivo \"{file}\" porque ya existe", + "Could not create folder \"{dir}\"" : "No se pudo crear la carpeta \"{dir}\"", + "Could not create folder \"{dir}\" because it already exists" : "No se pudo crear la carpeta \"{dir}\" porque ya existe", + "Error deleting file \"{fileName}\"." : "Error al borrar el archivo \"{fileName}\".", "No entries in this folder match '{filter}'" : "No hay resultados que coincidan con '{filter}'", "Name" : "Nombre", "Size" : "Tamaño", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index de4005ae515..27ebcb1da46 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -38,6 +38,15 @@ "Unable to determine date" : "No se pudo determinar la fecha", "This operation is forbidden" : "Esta operación está prohibida", "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verifique los registros o contáctese con el administrador", + "Could not move \"{file}\", target exists" : "No se pudo mover \"{file}\", destino ya existe", + "Could not move \"{file}\"" : "No se pudo mover \"{file}\"", + "{newName} already exists" : "{newName} ya existe", + "Could not rename \"{fileName}\"" : "No se pudo renombrar \"{fileName}\"", + "Could not create file \"{file}\"" : "No se pudo crear archivo \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "No se pudo crear archivo \"{file}\" porque ya existe", + "Could not create folder \"{dir}\"" : "No se pudo crear la carpeta \"{dir}\"", + "Could not create folder \"{dir}\" because it already exists" : "No se pudo crear la carpeta \"{dir}\" porque ya existe", + "Error deleting file \"{fileName}\"." : "Error al borrar el archivo \"{fileName}\".", "No entries in this folder match '{filter}'" : "No hay resultados que coincidan con '{filter}'", "Name" : "Nombre", "Size" : "Tamaño", diff --git a/apps/files/lib/backgroundjob/scanfiles.php b/apps/files/lib/backgroundjob/scanfiles.php new file mode 100644 index 00000000000..7371429a268 --- /dev/null +++ b/apps/files/lib/backgroundjob/scanfiles.php @@ -0,0 +1,114 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @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\Files\BackgroundJob; + +use OC\Files\Utils\Scanner; +use OCP\IConfig; +use OCP\IDBConnection; +use OCP\ILogger; +use OCP\IUser; +use OCP\IUserManager; + +/** + * Class ScanFiles is a background job used to run the file scanner over the user + * accounts to ensure integrity of the file cache. + * + * @package OCA\Files\BackgroundJob + */ +class ScanFiles extends \OC\BackgroundJob\TimedJob { + /** @var IConfig */ + private $config; + /** @var IUserManager */ + private $userManager; + /** @var IDBConnection */ + private $dbConnection; + /** @var ILogger */ + private $logger; + /** Amount of users that should get scanned per execution */ + const USERS_PER_SESSION = 500; + + /** + * @param IConfig|null $config + * @param IUserManager|null $userManager + * @param IDBConnection|null $dbConnection + * @param ILogger|null $logger + */ + public function __construct(IConfig $config = null, + IUserManager $userManager = null, + IDBConnection $dbConnection = null, + ILogger $logger = null) { + // Run once per 10 minutes + $this->setInterval(60 * 10); + + if (is_null($userManager) || is_null($config)) { + $this->fixDIForJobs(); + } else { + $this->config = $config; + $this->userManager = $userManager; + $this->logger = $logger; + } + } + + protected function fixDIForJobs() { + $this->config = \OC::$server->getConfig(); + $this->userManager = \OC::$server->getUserManager(); + $this->logger = \OC::$server->getLogger(); + } + + /** + * @param IUser $user + */ + protected function runScanner(IUser $user) { + try { + $scanner = new Scanner( + $user->getUID(), + $this->dbConnection, + $this->logger + ); + $scanner->backgroundScan(''); + } catch (\Exception $e) { + $this->logger->logException($e, ['app' => 'files']); + } + \OC_Util::tearDownFS(); + } + + /** + * @param $argument + * @throws \Exception + */ + protected function run($argument) { + $offset = $this->config->getAppValue('files', 'cronjob_scan_files', 0); + $users = $this->userManager->search('', self::USERS_PER_SESSION, $offset); + if (!count($users)) { + // No users found, reset offset and retry + $offset = 0; + $users = $this->userManager->search('', self::USERS_PER_SESSION); + } + + $offset += self::USERS_PER_SESSION; + $this->config->setAppValue('files', 'cronjob_scan_files', $offset); + + foreach ($users as $user) { + $this->runScanner($user); + } + } +} diff --git a/apps/files/tests/backgroundjob/ScanFilesTest.php b/apps/files/tests/backgroundjob/ScanFilesTest.php new file mode 100644 index 00000000000..907cad64f9e --- /dev/null +++ b/apps/files/tests/backgroundjob/ScanFilesTest.php @@ -0,0 +1,134 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @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\Files\Tests\BackgroundJob; + +use Test\TestCase; +use OCP\IConfig; +use OCP\IUserManager; +use OCA\Files\BackgroundJob\ScanFiles; +use OCP\ILogger; + +/** + * Class ScanFilesTest + * + * @package OCA\Files\Tests\BackgroundJob + */ +class ScanFilesTest extends TestCase { + /** @var IConfig */ + private $config; + /** @var IUserManager */ + private $userManager; + /** @var ScanFiles */ + private $scanFiles; + + public function setUp() { + parent::setUp(); + + $this->config = $this->getMock('\OCP\IConfig'); + $this->userManager = $this->getMock('\OCP\IUserManager'); + + $this->scanFiles = $this->getMockBuilder('\OCA\Files\BackgroundJob\ScanFiles') + ->setConstructorArgs([ + $this->config, + $this->userManager, + ]) + ->setMethods(['runScanner']) + ->getMock(); + } + + public function testRunWithoutUsers() { + $this->config + ->expects($this->at(0)) + ->method('getAppValue') + ->with('files', 'cronjob_scan_files', 0) + ->will($this->returnValue(50)); + $this->userManager + ->expects($this->at(0)) + ->method('search') + ->with('', 500, 50) + ->will($this->returnValue([])); + $this->userManager + ->expects($this->at(1)) + ->method('search') + ->with('', 500) + ->will($this->returnValue([])); + $this->config + ->expects($this->at(1)) + ->method('setAppValue') + ->with('files', 'cronjob_scan_files', 500); + + $this->invokePrivate($this->scanFiles, 'run', [[]]); + } + + public function testRunWithUsers() { + $fakeUser = $this->getMock('\OCP\IUser'); + $this->config + ->expects($this->at(0)) + ->method('getAppValue') + ->with('files', 'cronjob_scan_files', 0) + ->will($this->returnValue(50)); + $this->userManager + ->expects($this->at(0)) + ->method('search') + ->with('', 500, 50) + ->will($this->returnValue([ + $fakeUser + ])); + $this->config + ->expects($this->at(1)) + ->method('setAppValue') + ->with('files', 'cronjob_scan_files', 550); + $this->scanFiles + ->expects($this->once()) + ->method('runScanner') + ->with($fakeUser); + + $this->invokePrivate($this->scanFiles, 'run', [[]]); + } + + public function testRunWithUsersAndOffsetAtEndOfUserList() { + $this->config + ->expects($this->at(0)) + ->method('getAppValue') + ->with('files', 'cronjob_scan_files', 0) + ->will($this->returnValue(50)); + $this->userManager + ->expects($this->at(0)) + ->method('search') + ->with('', 500, 50) + ->will($this->returnValue([])); + $this->userManager + ->expects($this->at(1)) + ->method('search') + ->with('', 500) + ->will($this->returnValue([])); + $this->config + ->expects($this->at(1)) + ->method('setAppValue') + ->with('files', 'cronjob_scan_files', 500); + $this->scanFiles + ->expects($this->never()) + ->method('runScanner'); + + $this->invokePrivate($this->scanFiles, 'run', [[]]); + } + +} diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js index 8fbbee567a7..d4d00e7f83e 100644 --- a/apps/files_external/l10n/de.js +++ b/apps/files_external/l10n/de.js @@ -38,6 +38,8 @@ OC.L10N.register( "OpenStack" : "OpenStack", "Username" : "Benutzername", "Password" : "Passwort", + "Tenant name" : "Name des Mieters", + "Rackspace" : "Rackspace", "API key" : "API-Schlüssel", "Username and password" : "Benutzername und Passwort", "RSA public key" : "RSA öffentlicher Schlüssel", diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json index 02e495251a8..a65f58b0fdb 100644 --- a/apps/files_external/l10n/de.json +++ b/apps/files_external/l10n/de.json @@ -36,6 +36,8 @@ "OpenStack" : "OpenStack", "Username" : "Benutzername", "Password" : "Passwort", + "Tenant name" : "Name des Mieters", + "Rackspace" : "Rackspace", "API key" : "API-Schlüssel", "Username and password" : "Benutzername und Passwort", "RSA public key" : "RSA öffentlicher Schlüssel", diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js index 46de520f55e..1d49d7b13b8 100644 --- a/apps/files_external/l10n/es.js +++ b/apps/files_external/l10n/es.js @@ -24,6 +24,7 @@ OC.L10N.register( "Every time the filesystem is used" : "Cada vez que filesystem es utilizado", "All users. Type to select user or group." : "Todos los usuarios. Teclee para seleccionar un usuario o grupo.", "(group)" : "(grupo)", + "Admin defined" : "Admin definido", "Saved" : "Guardado", "Access key" : "Clave de acceso", "Secret key" : "Clave secreta", @@ -34,6 +35,7 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "ID de Cliente", "Client secret" : "Cliente secreto", + "OpenStack" : "OpenStack", "Username" : "Nombre de usuario", "Password" : "Contraseña", "Tenant name" : "Nombre del inquilino", diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json index 3748040fdd4..1c60cd5fdea 100644 --- a/apps/files_external/l10n/es.json +++ b/apps/files_external/l10n/es.json @@ -22,6 +22,7 @@ "Every time the filesystem is used" : "Cada vez que filesystem es utilizado", "All users. Type to select user or group." : "Todos los usuarios. Teclee para seleccionar un usuario o grupo.", "(group)" : "(grupo)", + "Admin defined" : "Admin definido", "Saved" : "Guardado", "Access key" : "Clave de acceso", "Secret key" : "Clave secreta", @@ -32,6 +33,7 @@ "OAuth2" : "OAuth2", "Client ID" : "ID de Cliente", "Client secret" : "Cliente secreto", + "OpenStack" : "OpenStack", "Username" : "Nombre de usuario", "Password" : "Contraseña", "Tenant name" : "Nombre del inquilino", diff --git a/apps/files_external/l10n/lt_LT.js b/apps/files_external/l10n/lt_LT.js index 0efbfa333b8..dabdeb8bd32 100644 --- a/apps/files_external/l10n/lt_LT.js +++ b/apps/files_external/l10n/lt_LT.js @@ -2,6 +2,7 @@ OC.L10N.register( "files_external", { "Fetching request tokens failed. Verify that your app key and secret are correct." : "Nepavyko atsiųsti užklausos žymės. Patikrinkite savo programos raktą ir paslaptį.", + "Step 1 failed. Exception: %s" : "1 žingsnio klaida: %s", "External storage" : "Išorinė saugykla", "Personal" : "Asmeniniai", "Grant access" : "Suteikti priėjimą", diff --git a/apps/files_external/l10n/lt_LT.json b/apps/files_external/l10n/lt_LT.json index 13c1543748f..2b05c277ee6 100644 --- a/apps/files_external/l10n/lt_LT.json +++ b/apps/files_external/l10n/lt_LT.json @@ -1,5 +1,6 @@ { "translations": { "Fetching request tokens failed. Verify that your app key and secret are correct." : "Nepavyko atsiųsti užklausos žymės. Patikrinkite savo programos raktą ir paslaptį.", + "Step 1 failed. Exception: %s" : "1 žingsnio klaida: %s", "External storage" : "Išorinė saugykla", "Personal" : "Asmeniniai", "Grant access" : "Suteikti priėjimą", diff --git a/build/integration/capabilities_features/capabilities.feature b/build/integration/capabilities_features/capabilities.feature new file mode 100644 index 00000000000..6c1e727e7b3 --- /dev/null +++ b/build/integration/capabilities_features/capabilities.feature @@ -0,0 +1,31 @@ +Feature: capabilities + Background: + Given using api version "1" + + Scenario: getting capabilities with admin user + Given As an "admin" + When sending "GET" to "/cloud/capabilities" + Then the HTTP status code should be "200" + And fields of capabilities match with + | capability | feature | value_or_subfeature | value | + | core | pollinterval | 60 | | + | core | webdav-root | remote.php/webdav | | + | files_sharing | api_enabled | 1 | | + | files_sharing | public | enabled | 1 | + | files_sharing | public | upload | 1 | + | files_sharing | resharing | 1 | | + | files_sharing | federation | outgoing | 1 | + | files_sharing | federation | incoming | 1 | + | files | bigfilechunking | 1 | | + | files | undelete | 1 | | + | files | versioning | 1 | | + + + + + + + + + + diff --git a/build/integration/config/behat.yml b/build/integration/config/behat.yml index 37ed2b117f3..42f5f88ac8a 100644 --- a/build/integration/config/behat.yml +++ b/build/integration/config/behat.yml @@ -14,7 +14,7 @@ default: regular_user_password: 123456 federation: paths: - - %paths.base%/../federation + - %paths.base%/../federation_features contexts: - FederationContext: baseUrl: http://localhost:8080/ocs/ @@ -22,6 +22,17 @@ default: - admin - admin regular_user_password: 123456 + capabilities: + paths: + - %paths.base%/../capabilities_features + contexts: + - CapabilitiesContext: + baseUrl: http://localhost:8080/ocs/ + admin: + - admin + - admin + regular_user_password: 123456 + extensions: diff --git a/build/integration/features/bootstrap/CapabilitiesContext.php b/build/integration/features/bootstrap/CapabilitiesContext.php new file mode 100644 index 00000000000..4e200bdf421 --- /dev/null +++ b/build/integration/features/bootstrap/CapabilitiesContext.php @@ -0,0 +1,49 @@ +<?php + +use Behat\Behat\Context\Context; +use Behat\Behat\Context\SnippetAcceptingContext; +use GuzzleHttp\Client; +use GuzzleHttp\Message\ResponseInterface; + +require __DIR__ . '/../../vendor/autoload.php'; + +/** + * Capabilities context. + */ +class CapabilitiesContext implements Context, SnippetAcceptingContext { + + use BasicStructure; + use Provisioning; + use Sharing; + + /** + * @Then /^fields of capabilities match with$/ + * @param \Behat\Gherkin\Node\TableNode|null $formData + */ + public function checkCapabilitiesResponse($formData){ + if ($formData instanceof \Behat\Gherkin\Node\TableNode) { + $fd = $formData->getHash(); + } + + $capabilitiesXML = $this->response->xml()->data->capabilities; + + foreach ($fd as $row) { + if ($row['value'] === ''){ + $answeredValue = (string)$capabilitiesXML->$row['capability']->$row['feature']; + PHPUnit_Framework_Assert::assertEquals( + $answeredValue, + $row['value_or_subfeature'], + "Failed field " . $row['capability'] . " " . $row['feature'] + ); + } else{ + $answeredValue = (string)$capabilitiesXML->$row['capability']->$row['feature']->$row['value_or_subfeature']; + PHPUnit_Framework_Assert::assertEquals( + $answeredValue, + $row['value'], + "Failed field: " . $row['capability'] . " " . $row['feature'] . " " . $row['value_or_subfeature'] + ); + } + } + } + +} diff --git a/build/integration/federation/federated.feature b/build/integration/federation_features/federated.feature index 5437d01dee2..5437d01dee2 100644 --- a/build/integration/federation/federated.feature +++ b/build/integration/federation_features/federated.feature diff --git a/core/l10n/ast.js b/core/l10n/ast.js index e0775c75569..18274e59cbc 100644 --- a/core/l10n/ast.js +++ b/core/l10n/ast.js @@ -134,7 +134,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "L'anovamientu fízose con ésitu. Redirixiendo agora al to ownCloud.", "Couldn't reset password because the token is invalid" : "Nun pudo reaniciase la contraseña porque'l token ye inválidu", "Couldn't send reset email. Please make sure your username is correct." : "Nun pudo unviase'l corréu. Por favor, asegurate que'l to nome d'usuariu seya correutu", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nun pudo unviase'l corréu porque nun hai direición de corréu pa esti nome d'usuariu. Por favor, contauta col alministrador", "%s password reset" : "%s restablecer contraseña", "Use the following link to reset your password: {link}" : "Usa'l siguiente enllaz pa restablecer la to contraseña: {link}", "New password" : "Contraseña nueva", diff --git a/core/l10n/ast.json b/core/l10n/ast.json index a4324339829..39059c9a89a 100644 --- a/core/l10n/ast.json +++ b/core/l10n/ast.json @@ -132,7 +132,6 @@ "The update was successful. Redirecting you to ownCloud now." : "L'anovamientu fízose con ésitu. Redirixiendo agora al to ownCloud.", "Couldn't reset password because the token is invalid" : "Nun pudo reaniciase la contraseña porque'l token ye inválidu", "Couldn't send reset email. Please make sure your username is correct." : "Nun pudo unviase'l corréu. Por favor, asegurate que'l to nome d'usuariu seya correutu", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nun pudo unviase'l corréu porque nun hai direición de corréu pa esti nome d'usuariu. Por favor, contauta col alministrador", "%s password reset" : "%s restablecer contraseña", "Use the following link to reset your password: {link}" : "Usa'l siguiente enllaz pa restablecer la to contraseña: {link}", "New password" : "Contraseña nueva", diff --git a/core/l10n/bg_BG.js b/core/l10n/bg_BG.js index 34df1311847..cdadedbf74b 100644 --- a/core/l10n/bg_BG.js +++ b/core/l10n/bg_BG.js @@ -145,7 +145,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Обновяването е успешно. Сега Ви пренасочваме към ownCloud.", "Couldn't reset password because the token is invalid" : "Промяната на паролата е невъзможно, защото връзката за удостоверение не е валидна", "Couldn't send reset email. Please make sure your username is correct." : "Неуспешно изпращане на имейл за възстановяване на паролата. Моля, уверете се, че потребителското име е правилно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Неуспешно изпращане на имейл за възстановяване на паролата, защото липсва имейл, свързан с това потребителско име. Моля, свържете се с администратора.", "%s password reset" : "Паролата на %s е променена.", "Use the following link to reset your password: {link}" : "Използвайте следната връзка, за да възстановите паролата си: {link}", "New password" : "Нова парола", diff --git a/core/l10n/bg_BG.json b/core/l10n/bg_BG.json index bcce1747bbd..c4f9a03757a 100644 --- a/core/l10n/bg_BG.json +++ b/core/l10n/bg_BG.json @@ -143,7 +143,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Обновяването е успешно. Сега Ви пренасочваме към ownCloud.", "Couldn't reset password because the token is invalid" : "Промяната на паролата е невъзможно, защото връзката за удостоверение не е валидна", "Couldn't send reset email. Please make sure your username is correct." : "Неуспешно изпращане на имейл за възстановяване на паролата. Моля, уверете се, че потребителското име е правилно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Неуспешно изпращане на имейл за възстановяване на паролата, защото липсва имейл, свързан с това потребителско име. Моля, свържете се с администратора.", "%s password reset" : "Паролата на %s е променена.", "Use the following link to reset your password: {link}" : "Използвайте следната връзка, за да възстановите паролата си: {link}", "New password" : "Нова парола", diff --git a/core/l10n/bs.js b/core/l10n/bs.js index 7d0664e38ee..f3b39d5fb97 100644 --- a/core/l10n/bs.js +++ b/core/l10n/bs.js @@ -134,7 +134,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Ažuriranje je uspjelo. Preusmjeravam vas na ownCloud.", "Couldn't reset password because the token is invalid" : "Nemoguće resetiranje lozinke jer znak nije validan.", "Couldn't send reset email. Please make sure your username is correct." : "Slanje emaila resetovanja nije moguće. Osigurajte se da vam je ispravno korisničko ime.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Slanje emaila resetovanja nije moguće jer za ovo korisničko ime ne postoji email adresa. Molim, kontaktirajte administratora.", "%s password reset" : "%s lozinka resetovana", "Use the following link to reset your password: {link}" : "Za resetovanje vaše lozinke koristite slijedeću vezu: {link}", "New password" : "Nova lozinka", diff --git a/core/l10n/bs.json b/core/l10n/bs.json index e221dba005d..8105c2c9866 100644 --- a/core/l10n/bs.json +++ b/core/l10n/bs.json @@ -132,7 +132,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Ažuriranje je uspjelo. Preusmjeravam vas na ownCloud.", "Couldn't reset password because the token is invalid" : "Nemoguće resetiranje lozinke jer znak nije validan.", "Couldn't send reset email. Please make sure your username is correct." : "Slanje emaila resetovanja nije moguće. Osigurajte se da vam je ispravno korisničko ime.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Slanje emaila resetovanja nije moguće jer za ovo korisničko ime ne postoji email adresa. Molim, kontaktirajte administratora.", "%s password reset" : "%s lozinka resetovana", "Use the following link to reset your password: {link}" : "Za resetovanje vaše lozinke koristite slijedeću vezu: {link}", "New password" : "Nova lozinka", diff --git a/core/l10n/ca.js b/core/l10n/ca.js index f1eb5f51db9..90b5c697de5 100644 --- a/core/l10n/ca.js +++ b/core/l10n/ca.js @@ -170,7 +170,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid", "Couldn't reset password because the token is expired" : "No es pot restablir la contrasenya perquè el testimoni ha vençut", "Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "No s'ha pogut enviar el correu de restabliment perquè no hi ha cap correu electrònic per aquest usuari. Contacteu amb l'administrador.", "%s password reset" : "restableix la contrasenya %s", "Use the following link to reset your password: {link}" : "Useu l'enllaç següent per restablir la contrasenya: {link}", "New password" : "Contrasenya nova", diff --git a/core/l10n/ca.json b/core/l10n/ca.json index 0b14ef2ff2a..eaa7fe37e82 100644 --- a/core/l10n/ca.json +++ b/core/l10n/ca.json @@ -168,7 +168,6 @@ "Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid", "Couldn't reset password because the token is expired" : "No es pot restablir la contrasenya perquè el testimoni ha vençut", "Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "No s'ha pogut enviar el correu de restabliment perquè no hi ha cap correu electrònic per aquest usuari. Contacteu amb l'administrador.", "%s password reset" : "restableix la contrasenya %s", "Use the following link to reset your password: {link}" : "Useu l'enllaç següent per restablir la contrasenya: {link}", "New password" : "Contrasenya nova", diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js index 41f7782de3c..4f66fc7fdd2 100644 --- a/core/l10n/cs_CZ.js +++ b/core/l10n/cs_CZ.js @@ -191,7 +191,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu", "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu", "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého správce systému.", "%s password reset" : "reset hesla %s", "Use the following link to reset your password: {link}" : "Heslo obnovíte použitím následujícího odkazu: {link}", "New password" : "Nové heslo", diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json index 321ac51f7e2..749eb5ce806 100644 --- a/core/l10n/cs_CZ.json +++ b/core/l10n/cs_CZ.json @@ -189,7 +189,6 @@ "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu", "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu", "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého správce systému.", "%s password reset" : "reset hesla %s", "Use the following link to reset your password: {link}" : "Heslo obnovíte použitím následujícího odkazu: {link}", "New password" : "Nové heslo", diff --git a/core/l10n/da.js b/core/l10n/da.js index eed02acd3be..21dd4627814 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -186,7 +186,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Kunne ikke nulstille kodeordet, fordi symboludtrykket er ugyldigt", "Couldn't reset password because the token is expired" : "Kunne ikke nulstille kodeord, da tokenet er udløbet", "Couldn't send reset email. Please make sure your username is correct." : "Der opstod et problem under afsendelse af nulstillings-e-mailen. Kontroller venligst om dit brugernavnet er korrekt", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Der opstod et problem under afsendelse af nulstillings-e-mailen. Der ikke er nogen email adresse tilknyttet denne bruger konto. Kontakt venligst systemadministratoren", "%s password reset" : "%s adgangskode nulstillet", "Use the following link to reset your password: {link}" : "Anvend følgende link til at nulstille din adgangskode: {link}", "New password" : "Ny adgangskode", diff --git a/core/l10n/da.json b/core/l10n/da.json index 35aff828922..84cd2e09ed7 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -184,7 +184,6 @@ "Couldn't reset password because the token is invalid" : "Kunne ikke nulstille kodeordet, fordi symboludtrykket er ugyldigt", "Couldn't reset password because the token is expired" : "Kunne ikke nulstille kodeord, da tokenet er udløbet", "Couldn't send reset email. Please make sure your username is correct." : "Der opstod et problem under afsendelse af nulstillings-e-mailen. Kontroller venligst om dit brugernavnet er korrekt", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Der opstod et problem under afsendelse af nulstillings-e-mailen. Der ikke er nogen email adresse tilknyttet denne bruger konto. Kontakt venligst systemadministratoren", "%s password reset" : "%s adgangskode nulstillet", "Use the following link to reset your password: {link}" : "Anvend følgende link til at nulstille din adgangskode: {link}", "New password" : "Ny adgangskode", diff --git a/core/l10n/de.js b/core/l10n/de.js index 873ff7d1634..79527a46e0b 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -6,8 +6,10 @@ OC.L10N.register( "Turned on maintenance mode" : "Wartungsmodus eingeschaltet", "Turned off maintenance mode" : "Wartungsmodus ausgeschaltet", "Maintenance mode is kept active" : "Wartungsmodus wird aktiv gehalten", + "Updating database schema" : "Datenbank-Schema wird upgedatet", "Updated database" : "Datenbank aktualisiert", "Checked database schema update" : "Datenbankschema-Aktualisierung überprüft", + "Checking updates of apps" : "Es wird nach Updates für die Apps gesucht", "Checked database schema update for apps" : "Datenbankschema-Aktualisierung für Apps überprüft", "Updated \"%s\" to %s" : "„%s“ zu %s aktualisiert", "Repair warning: " : "Reperaturwarnung:", @@ -179,7 +181,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht zurückgesetzt werden", "Couldn't reset password because the token is expired" : "Das Passwort konnte nicht zurückgesetzt werden, da der Token abgelaufen ist", "Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stelle sicher, dass Dein Benutzername korrekt ist.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Die E-Mail zum Zurücksetzen konnte nicht versandt werden, weil für diesen Benutzernamen keine E-Mail-Adresse hinterlegt ist. Bitte kontaktiere Deinen Administrator.", "%s password reset" : "%s-Passwort zurücksetzen", "Use the following link to reset your password: {link}" : "Benutze den folgenden Link, um Dein Passwort zurückzusetzen: {link}", "New password" : "Neues Passwort", diff --git a/core/l10n/de.json b/core/l10n/de.json index dcaeb2ad1a5..b567d209a49 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -4,8 +4,10 @@ "Turned on maintenance mode" : "Wartungsmodus eingeschaltet", "Turned off maintenance mode" : "Wartungsmodus ausgeschaltet", "Maintenance mode is kept active" : "Wartungsmodus wird aktiv gehalten", + "Updating database schema" : "Datenbank-Schema wird upgedatet", "Updated database" : "Datenbank aktualisiert", "Checked database schema update" : "Datenbankschema-Aktualisierung überprüft", + "Checking updates of apps" : "Es wird nach Updates für die Apps gesucht", "Checked database schema update for apps" : "Datenbankschema-Aktualisierung für Apps überprüft", "Updated \"%s\" to %s" : "„%s“ zu %s aktualisiert", "Repair warning: " : "Reperaturwarnung:", @@ -177,7 +179,6 @@ "Couldn't reset password because the token is invalid" : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht zurückgesetzt werden", "Couldn't reset password because the token is expired" : "Das Passwort konnte nicht zurückgesetzt werden, da der Token abgelaufen ist", "Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stelle sicher, dass Dein Benutzername korrekt ist.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Die E-Mail zum Zurücksetzen konnte nicht versandt werden, weil für diesen Benutzernamen keine E-Mail-Adresse hinterlegt ist. Bitte kontaktiere Deinen Administrator.", "%s password reset" : "%s-Passwort zurücksetzen", "Use the following link to reset your password: {link}" : "Benutze den folgenden Link, um Dein Passwort zurückzusetzen: {link}", "New password" : "Neues Passwort", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index a3033722d95..5d200e2267c 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -179,7 +179,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht zurückgesetzt werden", "Couldn't reset password because the token is expired" : "Das Passwort konnte nicht zurückgesetzt werden, da der Token abgelaufen ist", "Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stellen Sie sicher, dass Ihr Benutzername richtig ist.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Die E-Mail zum Zurücksetzen konnte nicht versandt werden, weil für diesen Benutzernamen keine E-Mail-Adresse hinterlegt ist. Bitte kontaktieren Sie Ihren Administrator.", "%s password reset" : "%s-Passwort zurücksetzen", "Use the following link to reset your password: {link}" : "Benutzen Sie den folgenden Link, um Ihr Passwort zurückzusetzen: {link}", "New password" : "Neues Passwort", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index a65673aa1e4..25e8daeaff7 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -177,7 +177,6 @@ "Couldn't reset password because the token is invalid" : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht zurückgesetzt werden", "Couldn't reset password because the token is expired" : "Das Passwort konnte nicht zurückgesetzt werden, da der Token abgelaufen ist", "Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stellen Sie sicher, dass Ihr Benutzername richtig ist.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Die E-Mail zum Zurücksetzen konnte nicht versandt werden, weil für diesen Benutzernamen keine E-Mail-Adresse hinterlegt ist. Bitte kontaktieren Sie Ihren Administrator.", "%s password reset" : "%s-Passwort zurücksetzen", "Use the following link to reset your password: {link}" : "Benutzen Sie den folgenden Link, um Ihr Passwort zurückzusetzen: {link}", "New password" : "Neues Passwort", diff --git a/core/l10n/el.js b/core/l10n/el.js index 2f264730565..e075b123a57 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Αδυναμία επαναφοράς κωδικού πρόσβασης καθώς το τεκμήριο είναι άκυρο", "Couldn't reset password because the token is expired" : "Αδυναμία επαναφοράς κωδικού πρόσβασης επειδή το token έχει λήξει", "Couldn't send reset email. Please make sure your username is correct." : "Αδυναμία αποστολής ηλ. μηνύματος επαναφοράς. Παρακαλώ ελέγξτε ότι το όνομα χρήστη σας είναι ορθό.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Αδυναμία αποστολής ηλ. μηνύματος επαναφοράς καθώς δεν αντιστοιχεί καμμία διεύθυνση ηλ. ταχυδρομείου σε αυτό το όνομα χρήστη. Παρακαλώ επικοινωνήστε με το διαχειριστή σας.", "%s password reset" : "%s επαναφορά κωδικού πρόσβασης", "Use the following link to reset your password: {link}" : "Χρησιμοποιήστε τον ακόλουθο σύνδεσμο για να επανεκδόσετε τον κωδικό: {link}", "New password" : "Νέο συνθηματικό", diff --git a/core/l10n/el.json b/core/l10n/el.json index cafa289fc32..7c203945b5e 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "Αδυναμία επαναφοράς κωδικού πρόσβασης καθώς το τεκμήριο είναι άκυρο", "Couldn't reset password because the token is expired" : "Αδυναμία επαναφοράς κωδικού πρόσβασης επειδή το token έχει λήξει", "Couldn't send reset email. Please make sure your username is correct." : "Αδυναμία αποστολής ηλ. μηνύματος επαναφοράς. Παρακαλώ ελέγξτε ότι το όνομα χρήστη σας είναι ορθό.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Αδυναμία αποστολής ηλ. μηνύματος επαναφοράς καθώς δεν αντιστοιχεί καμμία διεύθυνση ηλ. ταχυδρομείου σε αυτό το όνομα χρήστη. Παρακαλώ επικοινωνήστε με το διαχειριστή σας.", "%s password reset" : "%s επαναφορά κωδικού πρόσβασης", "Use the following link to reset your password: {link}" : "Χρησιμοποιήστε τον ακόλουθο σύνδεσμο για να επανεκδόσετε τον κωδικό: {link}", "New password" : "Νέο συνθηματικό", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index e8c85405d16..d51892019d0 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -155,7 +155,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "The update was successful. Redirecting you to ownCloud now.", "Couldn't reset password because the token is invalid" : "Couldn't reset password because the token is invalid", "Couldn't send reset email. Please make sure your username is correct." : "Couldn't send reset email. Please make sure your username is correct.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Couldn't send reset email because there is no email address for this username. Please contact your administrator.", "%s password reset" : "%s password reset", "Use the following link to reset your password: {link}" : "Use the following link to reset your password: {link}", "New password" : "New password", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 1a2c794895a..9042f4d0c00 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -153,7 +153,6 @@ "The update was successful. Redirecting you to ownCloud now." : "The update was successful. Redirecting you to ownCloud now.", "Couldn't reset password because the token is invalid" : "Couldn't reset password because the token is invalid", "Couldn't send reset email. Please make sure your username is correct." : "Couldn't send reset email. Please make sure your username is correct.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Couldn't send reset email because there is no email address for this username. Please contact your administrator.", "%s password reset" : "%s password reset", "Use the following link to reset your password: {link}" : "Use the following link to reset your password: {link}", "New password" : "New password", diff --git a/core/l10n/es.js b/core/l10n/es.js index 316f938798d..fd8df5f6c2f 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -72,6 +72,7 @@ OC.L10N.register( "Oct." : "Oct.", "Nov." : "Nov.", "Dec." : "Dic.", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Ha habido problemas durante la comprobación de la integridad del código. Más información…</a>", "Settings" : "Ajustes", "Saving..." : "Guardando...", "seconds ago" : "hace segundos", @@ -181,7 +182,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "No se puede restablecer la contraseña porque el vale de identificación es inválido.", "Couldn't reset password because the token is expired" : "No se puede restablecer la contraseña porque el vale de identificación ha caducado.", "Couldn't send reset email. Please make sure your username is correct." : "No se pudo enviar el correo electrónico para el restablecimiento. Por favor, asegúrese de que su nombre de usuario es el correcto.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "No se pudo enviar el correo electrónico para el restablecimiento, porque no hay una dirección de correo electrónico asociada con este nombre de usuario. Por favor, contacte a su administrador.", "%s password reset" : "%s restablecer contraseña", "Use the following link to reset your password: {link}" : "Utilice el siguiente enlace para restablecer su contraseña: {link}", "New password" : "Nueva contraseña", diff --git a/core/l10n/es.json b/core/l10n/es.json index aa865fbd542..a3ad1e2a9a4 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -70,6 +70,7 @@ "Oct." : "Oct.", "Nov." : "Nov.", "Dec." : "Dic.", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Ha habido problemas durante la comprobación de la integridad del código. Más información…</a>", "Settings" : "Ajustes", "Saving..." : "Guardando...", "seconds ago" : "hace segundos", @@ -179,7 +180,6 @@ "Couldn't reset password because the token is invalid" : "No se puede restablecer la contraseña porque el vale de identificación es inválido.", "Couldn't reset password because the token is expired" : "No se puede restablecer la contraseña porque el vale de identificación ha caducado.", "Couldn't send reset email. Please make sure your username is correct." : "No se pudo enviar el correo electrónico para el restablecimiento. Por favor, asegúrese de que su nombre de usuario es el correcto.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "No se pudo enviar el correo electrónico para el restablecimiento, porque no hay una dirección de correo electrónico asociada con este nombre de usuario. Por favor, contacte a su administrador.", "%s password reset" : "%s restablecer contraseña", "Use the following link to reset your password: {link}" : "Utilice el siguiente enlace para restablecer su contraseña: {link}", "New password" : "Nueva contraseña", diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index b782b43999a..7cb375149ac 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -158,7 +158,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Uuendus oli edukas. Kohe suunatakse Sind ownCloudi.", "Couldn't reset password because the token is invalid" : "Ei saanud parooli taastada, kuna märgend on vigane", "Couldn't send reset email. Please make sure your username is correct." : "Ei suutnud lähtestada e-maili. Palun veendu, et kasutajatunnus on õige.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Ei suutnud lähtestada e-maili, kuna sellel kasutajal pole e-posti määratud. Palun kontakteeru süsteemihalduriga.", "%s password reset" : "%s parooli lähtestus", "Use the following link to reset your password: {link}" : "Kasuta järgnevat linki oma parooli taastamiseks: {link}", "New password" : "Uus parool", diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index c25b9f166c9..d10decffc5d 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -156,7 +156,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Uuendus oli edukas. Kohe suunatakse Sind ownCloudi.", "Couldn't reset password because the token is invalid" : "Ei saanud parooli taastada, kuna märgend on vigane", "Couldn't send reset email. Please make sure your username is correct." : "Ei suutnud lähtestada e-maili. Palun veendu, et kasutajatunnus on õige.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Ei suutnud lähtestada e-maili, kuna sellel kasutajal pole e-posti määratud. Palun kontakteeru süsteemihalduriga.", "%s password reset" : "%s parooli lähtestus", "Use the following link to reset your password: {link}" : "Kasuta järgnevat linki oma parooli taastamiseks: {link}", "New password" : "Uus parool", diff --git a/core/l10n/eu.js b/core/l10n/eu.js index d24a7cd42e2..dd247c80e30 100644 --- a/core/l10n/eu.js +++ b/core/l10n/eu.js @@ -139,7 +139,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Eguneraketa ongi egin da. Orain zure ownClouderea berbideratua izango zara.", "Couldn't reset password because the token is invalid" : "Ezin izan da pasahitza berrezarri tokena baliogabea delako", "Couldn't send reset email. Please make sure your username is correct." : "Ezin izan da berrezartzeko eposta bidali. Ziurtatu zure erabiltzaile izena egokia dela.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Ezin izan da berrezartzeko eposta bidali erabiltzaile izen honetarako eposta helbiderik ez dagoelako. Mesedez harremanetan jarri kudeatzailearekin.", "%s password reset" : "%s pasahitza berrezarri", "Use the following link to reset your password: {link}" : "Eribili hurrengo lotura zure pasahitza berrezartzeko: {link}", "New password" : "Pasahitz berria", diff --git a/core/l10n/eu.json b/core/l10n/eu.json index 81849897490..9a81a86df26 100644 --- a/core/l10n/eu.json +++ b/core/l10n/eu.json @@ -137,7 +137,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Eguneraketa ongi egin da. Orain zure ownClouderea berbideratua izango zara.", "Couldn't reset password because the token is invalid" : "Ezin izan da pasahitza berrezarri tokena baliogabea delako", "Couldn't send reset email. Please make sure your username is correct." : "Ezin izan da berrezartzeko eposta bidali. Ziurtatu zure erabiltzaile izena egokia dela.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Ezin izan da berrezartzeko eposta bidali erabiltzaile izen honetarako eposta helbiderik ez dagoelako. Mesedez harremanetan jarri kudeatzailearekin.", "%s password reset" : "%s pasahitza berrezarri", "Use the following link to reset your password: {link}" : "Eribili hurrengo lotura zure pasahitza berrezartzeko: {link}", "New password" : "Pasahitz berria", diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js index ea79299a7d5..dd95057a551 100644 --- a/core/l10n/fi_FI.js +++ b/core/l10n/fi_FI.js @@ -191,7 +191,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Salasanaa ei voitu palauttaa koska valtuutus on virheellinen", "Couldn't reset password because the token is expired" : "Salasanan nollaaminen ei onnistunut, koska valtuutus on vanhentunut", "Couldn't send reset email. Please make sure your username is correct." : "Palautussähköpostin lähettäminen ei onnistunut. Varmista, että käyttäjätunnuksesi on oikein.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Palautussähköpostin lähettäminen ei onnistunut, koska tälle käyttäjätunnukselle ei ole määritelty sähköpostiosoitetta. Ota yhteys ylläpitäjään.", "%s password reset" : "%s salasanan palautus", "Use the following link to reset your password: {link}" : "Voit palauttaa salasanasi seuraavassa osoitteessa: {link}", "New password" : "Uusi salasana", diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json index 94d83026ada..45ddbfb3570 100644 --- a/core/l10n/fi_FI.json +++ b/core/l10n/fi_FI.json @@ -189,7 +189,6 @@ "Couldn't reset password because the token is invalid" : "Salasanaa ei voitu palauttaa koska valtuutus on virheellinen", "Couldn't reset password because the token is expired" : "Salasanan nollaaminen ei onnistunut, koska valtuutus on vanhentunut", "Couldn't send reset email. Please make sure your username is correct." : "Palautussähköpostin lähettäminen ei onnistunut. Varmista, että käyttäjätunnuksesi on oikein.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Palautussähköpostin lähettäminen ei onnistunut, koska tälle käyttäjätunnukselle ei ole määritelty sähköpostiosoitetta. Ota yhteys ylläpitäjään.", "%s password reset" : "%s salasanan palautus", "Use the following link to reset your password: {link}" : "Voit palauttaa salasanasi seuraavassa osoitteessa: {link}", "New password" : "Uusi salasana", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index cd5d68f6f5e..9dae27cd459 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -191,7 +191,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable.", "Couldn't reset password because the token is expired" : "Impossible de réinitialiser le mot de passe car le jeton a expiré.", "Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.", "%s password reset" : "Réinitialisation de votre mot de passe %s", "Use the following link to reset your password: {link}" : "Utilisez le lien suivant pour réinitialiser votre mot de passe : {link}", "New password" : "Nouveau mot de passe", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 2bfa6edc49e..ee8f44595e2 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -189,7 +189,6 @@ "Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable.", "Couldn't reset password because the token is expired" : "Impossible de réinitialiser le mot de passe car le jeton a expiré.", "Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.", "%s password reset" : "Réinitialisation de votre mot de passe %s", "Use the following link to reset your password: {link}" : "Utilisez le lien suivant pour réinitialiser votre mot de passe : {link}", "New password" : "Nouveau mot de passe", diff --git a/core/l10n/gl.js b/core/l10n/gl.js index 92fa9a74f35..eaef574eef3 100644 --- a/core/l10n/gl.js +++ b/core/l10n/gl.js @@ -168,7 +168,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "A actualización realizouse correctamente. Redirixíndoo agora á ownCloud.", "Couldn't reset password because the token is invalid" : "No, foi posíbel restabelecer o contrasinal, a marca non é correcta", "Couldn't send reset email. Please make sure your username is correct." : "Non foi posíbel enviar o correo do restabelecemento. Asegúrese de que o nome de usuario é o correcto.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Non foi posíbel enviar o correo do restabelecemento. Semella que este correo non corresponde con este nome de usuario. Póñase en contacto co administrador.", "%s password reset" : "Restabelecer o contrasinal %s", "Use the following link to reset your password: {link}" : "Usa a seguinte ligazón para restabelecer o contrasinal: {link}", "New password" : "Novo contrasinal", diff --git a/core/l10n/gl.json b/core/l10n/gl.json index ebc7313cccc..f72db710e89 100644 --- a/core/l10n/gl.json +++ b/core/l10n/gl.json @@ -166,7 +166,6 @@ "The update was successful. Redirecting you to ownCloud now." : "A actualización realizouse correctamente. Redirixíndoo agora á ownCloud.", "Couldn't reset password because the token is invalid" : "No, foi posíbel restabelecer o contrasinal, a marca non é correcta", "Couldn't send reset email. Please make sure your username is correct." : "Non foi posíbel enviar o correo do restabelecemento. Asegúrese de que o nome de usuario é o correcto.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Non foi posíbel enviar o correo do restabelecemento. Semella que este correo non corresponde con este nome de usuario. Póñase en contacto co administrador.", "%s password reset" : "Restabelecer o contrasinal %s", "Use the following link to reset your password: {link}" : "Usa a seguinte ligazón para restabelecer o contrasinal: {link}", "New password" : "Novo contrasinal", diff --git a/core/l10n/hr.js b/core/l10n/hr.js index 6bb9356a76b..647657629f4 100644 --- a/core/l10n/hr.js +++ b/core/l10n/hr.js @@ -143,7 +143,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Ažuriranje je uspjelo. Upravo ste preusmjeravani na ownCloud.", "Couldn't reset password because the token is invalid" : "Resetiranje lozinke nije moguće jer je token neispravan.", "Couldn't send reset email. Please make sure your username is correct." : "Resetiranu e-poštu nije moguće poslati.Molimo provjerite ispravnost svoga korisničkog imena.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Resetiranu e-poštu nije moguće poslati jer za ovo korisničko ime ne postoji adresa.Molimo, kontaktirajte svog administratora.", "%s password reset" : "%s lozinka resetirana", "Use the following link to reset your password: {link}" : "Za resetiranje svoje lozinke koristite sljedeću vezu: {link}", "New password" : "Nova lozinka", diff --git a/core/l10n/hr.json b/core/l10n/hr.json index 3e64259428c..9c9d7eff95f 100644 --- a/core/l10n/hr.json +++ b/core/l10n/hr.json @@ -141,7 +141,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Ažuriranje je uspjelo. Upravo ste preusmjeravani na ownCloud.", "Couldn't reset password because the token is invalid" : "Resetiranje lozinke nije moguće jer je token neispravan.", "Couldn't send reset email. Please make sure your username is correct." : "Resetiranu e-poštu nije moguće poslati.Molimo provjerite ispravnost svoga korisničkog imena.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Resetiranu e-poštu nije moguće poslati jer za ovo korisničko ime ne postoji adresa.Molimo, kontaktirajte svog administratora.", "%s password reset" : "%s lozinka resetirana", "Use the following link to reset your password: {link}" : "Za resetiranje svoje lozinke koristite sljedeću vezu: {link}", "New password" : "Nova lozinka", diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js index 3d0276c1700..a9b84b6bcf9 100644 --- a/core/l10n/hu_HU.js +++ b/core/l10n/hu_HU.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Nem lehet a jelszót törölni, mert a token érvénytelen.", "Couldn't reset password because the token is expired" : "Nem lehet a jelszót törölni, mert a token lejárt.", "Couldn't send reset email. Please make sure your username is correct." : "Visszaállítási e-mail nem küldhető. Kérjük, lépjen kapcsolatba a rendszergazdával. ", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Visszaállítási e-mail nem küldhető, mert nem tartozik e-mail cím ehhez a felhasználóhoz. Kérjük, lépjen kapcsolatba a rendszergazdával.", "%s password reset" : "%s jelszó visszaállítás", "Use the following link to reset your password: {link}" : "Használja ezt a linket a jelszó ismételt beállításához: {link}", "New password" : "Az új jelszó", diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json index b1aa5f4c8ad..991851b5beb 100644 --- a/core/l10n/hu_HU.json +++ b/core/l10n/hu_HU.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "Nem lehet a jelszót törölni, mert a token érvénytelen.", "Couldn't reset password because the token is expired" : "Nem lehet a jelszót törölni, mert a token lejárt.", "Couldn't send reset email. Please make sure your username is correct." : "Visszaállítási e-mail nem küldhető. Kérjük, lépjen kapcsolatba a rendszergazdával. ", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Visszaállítási e-mail nem küldhető, mert nem tartozik e-mail cím ehhez a felhasználóhoz. Kérjük, lépjen kapcsolatba a rendszergazdával.", "%s password reset" : "%s jelszó visszaállítás", "Use the following link to reset your password: {link}" : "Használja ezt a linket a jelszó ismételt beállításához: {link}", "New password" : "Az új jelszó", diff --git a/core/l10n/id.js b/core/l10n/id.js index 6306d0682e0..fb0fb7f4330 100644 --- a/core/l10n/id.js +++ b/core/l10n/id.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Tidak dapat menyetel ulang sandi karena token tidak sah", "Couldn't reset password because the token is expired" : "Tidak dapat menyetel ulang sandi karena token telah kadaluarsa", "Couldn't send reset email. Please make sure your username is correct." : "Tidak dapat menyetel ulang email. Mohon pastikan nama pengguna Anda benar.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Tidak dapat menyetel ulang email karena tidak ada alamat email untuk nama pengguna ini. Silakan hubungi Administrator Anda.", "%s password reset" : "%s sandi disetel ulang", "Use the following link to reset your password: {link}" : "Gunakan tautan berikut untuk menyetel ulang sandi Anda: {link}", "New password" : "Sandi baru", diff --git a/core/l10n/id.json b/core/l10n/id.json index 80eebfdaab4..2edd1f8b362 100644 --- a/core/l10n/id.json +++ b/core/l10n/id.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "Tidak dapat menyetel ulang sandi karena token tidak sah", "Couldn't reset password because the token is expired" : "Tidak dapat menyetel ulang sandi karena token telah kadaluarsa", "Couldn't send reset email. Please make sure your username is correct." : "Tidak dapat menyetel ulang email. Mohon pastikan nama pengguna Anda benar.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Tidak dapat menyetel ulang email karena tidak ada alamat email untuk nama pengguna ini. Silakan hubungi Administrator Anda.", "%s password reset" : "%s sandi disetel ulang", "Use the following link to reset your password: {link}" : "Gunakan tautan berikut untuk menyetel ulang sandi Anda: {link}", "New password" : "Sandi baru", diff --git a/core/l10n/is.js b/core/l10n/is.js index a4f17b74f55..47f52e49d02 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -175,7 +175,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Gat ekki endurstillt lykilorðið vegna þess að tóki ógilt", "Couldn't reset password because the token is expired" : "Gat ekki endurstillt lykilorðið vegna þess að tóki er útrunnið", "Couldn't send reset email. Please make sure your username is correct." : "Gat ekki sent endurstillingu í tölvupóst. Vinsamlegast gakktu úr skugga um að notandanafn þitt sé rétt.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Gat ekki sent endurstillingu í tölvupóst vegna þess að það er ekkert netfang fyrir þetta notandanafn. Vinsamlegast hafðu samband við kerfisstjóra.", "%s password reset" : "%s lykilorð endurstillt", "Use the following link to reset your password: {link}" : "Notað eftirfarandi veftengil til að endursetja lykilorðið þitt: {link}", "New password" : "Nýtt lykilorð", diff --git a/core/l10n/is.json b/core/l10n/is.json index aebd0c756d2..04f1af7ab63 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -173,7 +173,6 @@ "Couldn't reset password because the token is invalid" : "Gat ekki endurstillt lykilorðið vegna þess að tóki ógilt", "Couldn't reset password because the token is expired" : "Gat ekki endurstillt lykilorðið vegna þess að tóki er útrunnið", "Couldn't send reset email. Please make sure your username is correct." : "Gat ekki sent endurstillingu í tölvupóst. Vinsamlegast gakktu úr skugga um að notandanafn þitt sé rétt.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Gat ekki sent endurstillingu í tölvupóst vegna þess að það er ekkert netfang fyrir þetta notandanafn. Vinsamlegast hafðu samband við kerfisstjóra.", "%s password reset" : "%s lykilorð endurstillt", "Use the following link to reset your password: {link}" : "Notað eftirfarandi veftengil til að endursetja lykilorðið þitt: {link}", "New password" : "Nýtt lykilorð", diff --git a/core/l10n/it.js b/core/l10n/it.js index 60b1620179e..987aed20d9c 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -191,7 +191,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Impossibile reimpostare la password poiché il token non è valido", "Couldn't reset password because the token is expired" : "Impossibile reimpostare la password poiché il token è scaduto", "Couldn't send reset email. Please make sure your username is correct." : "Impossibile inviare l'email di reimpostazione. Assicurati che il nome utente sia corretto.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Impossibile inviare l'email di reimpostazione poiché non è presente un indirizzo email per questo nome utente. Contatta il tuo amministratore.", "%s password reset" : "Ripristino password di %s", "Use the following link to reset your password: {link}" : "Usa il collegamento seguente per ripristinare la password: {link}", "New password" : "Nuova password", diff --git a/core/l10n/it.json b/core/l10n/it.json index bede84fee8a..fc6811a71bd 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -189,7 +189,6 @@ "Couldn't reset password because the token is invalid" : "Impossibile reimpostare la password poiché il token non è valido", "Couldn't reset password because the token is expired" : "Impossibile reimpostare la password poiché il token è scaduto", "Couldn't send reset email. Please make sure your username is correct." : "Impossibile inviare l'email di reimpostazione. Assicurati che il nome utente sia corretto.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Impossibile inviare l'email di reimpostazione poiché non è presente un indirizzo email per questo nome utente. Contatta il tuo amministratore.", "%s password reset" : "Ripristino password di %s", "Use the following link to reset your password: {link}" : "Usa il collegamento seguente per ripristinare la password: {link}", "New password" : "Nuova password", diff --git a/core/l10n/ja.js b/core/l10n/ja.js index d5eb22d42f7..375b8c8a789 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "トークンが無効なため、パスワードをリセットできませんでした", "Couldn't reset password because the token is expired" : "トークンが期限切れのため、パスワードをリセットできませんでした", "Couldn't send reset email. Please make sure your username is correct." : "リセットメールを送信できませんでした。ユーザー名が正しいことを確認してください。", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "このユーザー名に紐付けられたメールアドレスがないため、リセットメールを送信できませんでした。管理者に問い合わせてください。", "%s password reset" : "%s パスワードリセット", "Use the following link to reset your password: {link}" : "パスワードをリセットするには次のリンクをクリックしてください: {link}", "New password" : "新しいパスワードを入力", diff --git a/core/l10n/ja.json b/core/l10n/ja.json index 443b8038ea5..337358d57f7 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "トークンが無効なため、パスワードをリセットできませんでした", "Couldn't reset password because the token is expired" : "トークンが期限切れのため、パスワードをリセットできませんでした", "Couldn't send reset email. Please make sure your username is correct." : "リセットメールを送信できませんでした。ユーザー名が正しいことを確認してください。", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "このユーザー名に紐付けられたメールアドレスがないため、リセットメールを送信できませんでした。管理者に問い合わせてください。", "%s password reset" : "%s パスワードリセット", "Use the following link to reset your password: {link}" : "パスワードをリセットするには次のリンクをクリックしてください: {link}", "New password" : "新しいパスワードを入力", diff --git a/core/l10n/kn.js b/core/l10n/kn.js index cf16300c759..97d90600a6d 100644 --- a/core/l10n/kn.js +++ b/core/l10n/kn.js @@ -111,7 +111,6 @@ OC.L10N.register( "The update was unsuccessful. " : "ಆಧುನೀಕರಿಣೆ ಯಶಸ್ವಿಯಾಗಿಲ್ಲ.", "Couldn't reset password because the token is invalid" : "ಚಿಹ್ನೆ ಅಮಾನ್ಯವಾಗಿದೆ, ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ", "Couldn't send reset email. Please make sure your username is correct." : "ಬದಲಾವಣೆಯ ಇ-ಅಂಚೆಯನ್ನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಬಳಕೆದಾರ ಹೆಸರು ಸರಿಯಾಗಿದೆ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "ಈ ಬಳಕೆದಾರನ ಹೆಸರಿನ್ನಲ್ಲಿ ಯಾವುದೇ ಇ-ಅಂಚೆ ವಿಳಾಸ ಇಲ್ಲದರಿರುವುದರಿಂದ ಬದಲಾವಣೆಯ ಇ-ಅಂಚೆಯನ್ನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.", "%s password reset" : "%s ಗುಪ್ತ ಪದವನ್ನು ಮರುಹೊಂದಿಸಿ", "Use the following link to reset your password: {link}" : "ನಿಮ್ಮ ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಲು ಕೆಳಗಿನ ಅಂತ್ರಜಾಲ ಕೊಂಡಿಯನ್ನು ಬಳಸಿ : {link}", "New password" : "ಹೊಸ ಗುಪ್ತಪದ", diff --git a/core/l10n/kn.json b/core/l10n/kn.json index a7ea1bba098..0fef8e9abea 100644 --- a/core/l10n/kn.json +++ b/core/l10n/kn.json @@ -109,7 +109,6 @@ "The update was unsuccessful. " : "ಆಧುನೀಕರಿಣೆ ಯಶಸ್ವಿಯಾಗಿಲ್ಲ.", "Couldn't reset password because the token is invalid" : "ಚಿಹ್ನೆ ಅಮಾನ್ಯವಾಗಿದೆ, ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ", "Couldn't send reset email. Please make sure your username is correct." : "ಬದಲಾವಣೆಯ ಇ-ಅಂಚೆಯನ್ನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಬಳಕೆದಾರ ಹೆಸರು ಸರಿಯಾಗಿದೆ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "ಈ ಬಳಕೆದಾರನ ಹೆಸರಿನ್ನಲ್ಲಿ ಯಾವುದೇ ಇ-ಅಂಚೆ ವಿಳಾಸ ಇಲ್ಲದರಿರುವುದರಿಂದ ಬದಲಾವಣೆಯ ಇ-ಅಂಚೆಯನ್ನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.", "%s password reset" : "%s ಗುಪ್ತ ಪದವನ್ನು ಮರುಹೊಂದಿಸಿ", "Use the following link to reset your password: {link}" : "ನಿಮ್ಮ ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಲು ಕೆಳಗಿನ ಅಂತ್ರಜಾಲ ಕೊಂಡಿಯನ್ನು ಬಳಸಿ : {link}", "New password" : "ಹೊಸ ಗುಪ್ತಪದ", diff --git a/core/l10n/ko.js b/core/l10n/ko.js index 97c6d5dcdec..f8d131fca29 100644 --- a/core/l10n/ko.js +++ b/core/l10n/ko.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "토큰이 잘못되었기 때문에 암호를 초기화할 수 없습니다", "Couldn't reset password because the token is expired" : "토큰이 만료되어 암호를 초기화할 수 없습니다", "Couldn't send reset email. Please make sure your username is correct." : "재설정 메일을 보낼 수 없습니다. 사용자 이름이 올바른지 확인하십시오.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "해당 사용자 이름에 등록된 이메일 주소가 없어서 재설정 메일을 보낼 수 없습니다. 관리자에게 문의하십시오.", "%s password reset" : "%s 암호 재설정", "Use the following link to reset your password: {link}" : "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}", "New password" : "새 암호", diff --git a/core/l10n/ko.json b/core/l10n/ko.json index 293242a2f62..64aec1d9d97 100644 --- a/core/l10n/ko.json +++ b/core/l10n/ko.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "토큰이 잘못되었기 때문에 암호를 초기화할 수 없습니다", "Couldn't reset password because the token is expired" : "토큰이 만료되어 암호를 초기화할 수 없습니다", "Couldn't send reset email. Please make sure your username is correct." : "재설정 메일을 보낼 수 없습니다. 사용자 이름이 올바른지 확인하십시오.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "해당 사용자 이름에 등록된 이메일 주소가 없어서 재설정 메일을 보낼 수 없습니다. 관리자에게 문의하십시오.", "%s password reset" : "%s 암호 재설정", "Use the following link to reset your password: {link}" : "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}", "New password" : "새 암호", diff --git a/core/l10n/nb_NO.js b/core/l10n/nb_NO.js index b21e5d6b17c..d6a613ab48e 100644 --- a/core/l10n/nb_NO.js +++ b/core/l10n/nb_NO.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Klarte ikke å tilbakestille passordet fordi token er ugyldig.", "Couldn't reset password because the token is expired" : "Klarte ikke å tilbakestille passordet fordi token er utløpt.", "Couldn't send reset email. Please make sure your username is correct." : "Klarte ikke å sende e-post for tilbakestilling av passord. Sjekk at brukernavnet ditt er korrekt.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Klarte ikke å sende e-post for tilbakestilling av passord fordi det ikke finnes noen e-postadresse for dette brukernavnet. Kontakt administratoren din.", "%s password reset" : "%s tilbakestilling av passord", "Use the following link to reset your password: {link}" : "Bruk følgende lenke for å tilbakestille passordet ditt: {link}", "New password" : "Nytt passord", diff --git a/core/l10n/nb_NO.json b/core/l10n/nb_NO.json index cb67534cd01..58cad24f1a2 100644 --- a/core/l10n/nb_NO.json +++ b/core/l10n/nb_NO.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "Klarte ikke å tilbakestille passordet fordi token er ugyldig.", "Couldn't reset password because the token is expired" : "Klarte ikke å tilbakestille passordet fordi token er utløpt.", "Couldn't send reset email. Please make sure your username is correct." : "Klarte ikke å sende e-post for tilbakestilling av passord. Sjekk at brukernavnet ditt er korrekt.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Klarte ikke å sende e-post for tilbakestilling av passord fordi det ikke finnes noen e-postadresse for dette brukernavnet. Kontakt administratoren din.", "%s password reset" : "%s tilbakestilling av passord", "Use the following link to reset your password: {link}" : "Bruk følgende lenke for å tilbakestille passordet ditt: {link}", "New password" : "Nytt passord", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index fe5f45c95ea..ffff693e95c 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is", "Couldn't reset password because the token is expired" : "Kon het wachtwoord niet herstellen, omdat het token verlopen is", "Couldn't send reset email. Please make sure your username is correct." : "Kon e-mail niet versturen. Verifieer of uw gebruikersnaam correct is.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Kon geen herstel e-mail versturen, omdat er geen e-mailadres bekend is bij deze gebruikersnaam. Neem contact op met uw beheerder.", "%s password reset" : "%s wachtwoord reset", "Use the following link to reset your password: {link}" : "Gebruik de volgende link om uw wachtwoord te resetten: {link}", "New password" : "Nieuw wachtwoord", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index 117070e8399..a387d496092 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is", "Couldn't reset password because the token is expired" : "Kon het wachtwoord niet herstellen, omdat het token verlopen is", "Couldn't send reset email. Please make sure your username is correct." : "Kon e-mail niet versturen. Verifieer of uw gebruikersnaam correct is.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Kon geen herstel e-mail versturen, omdat er geen e-mailadres bekend is bij deze gebruikersnaam. Neem contact op met uw beheerder.", "%s password reset" : "%s wachtwoord reset", "Use the following link to reset your password: {link}" : "Gebruik de volgende link om uw wachtwoord te resetten: {link}", "New password" : "Nieuw wachtwoord", diff --git a/core/l10n/oc.js b/core/l10n/oc.js index 6c27148b497..f9fdb8bea11 100644 --- a/core/l10n/oc.js +++ b/core/l10n/oc.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Impossible de reïnicializar lo senhal perque lo geton es pas valable.", "Couldn't reset password because the token is expired" : "Impossible de reïnicializar lo senhal perque lo geton a expirat.", "Couldn't send reset email. Please make sure your username is correct." : "Impossible de mandar lo corrièl de reïnicializacion. Verificatz que vòstre nom d'utilizaire es corrècte.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Impossible de mandar lo corrièl de reïnicializacion perque i a pas cap d'adreça de corrièl per aqueste utilizaire. Contactatz vòstre administrator.", "%s password reset" : "Reïnicializacion de vòstre senhal %s", "Use the following link to reset your password: {link}" : "Utilizatz lo ligam seguent per reïnicializar vòstre senhal : {link}", "New password" : "Senhal novèl", diff --git a/core/l10n/oc.json b/core/l10n/oc.json index c73667e6f1c..bd34013f9e7 100644 --- a/core/l10n/oc.json +++ b/core/l10n/oc.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "Impossible de reïnicializar lo senhal perque lo geton es pas valable.", "Couldn't reset password because the token is expired" : "Impossible de reïnicializar lo senhal perque lo geton a expirat.", "Couldn't send reset email. Please make sure your username is correct." : "Impossible de mandar lo corrièl de reïnicializacion. Verificatz que vòstre nom d'utilizaire es corrècte.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Impossible de mandar lo corrièl de reïnicializacion perque i a pas cap d'adreça de corrièl per aqueste utilizaire. Contactatz vòstre administrator.", "%s password reset" : "Reïnicializacion de vòstre senhal %s", "Use the following link to reset your password: {link}" : "Utilizatz lo ligam seguent per reïnicializar vòstre senhal : {link}", "New password" : "Senhal novèl", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index 972506283e9..c55b25e3956 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -143,7 +143,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.", "Couldn't reset password because the token is invalid" : "Nie można zresetować hasła, ponieważ token jest niepoprawny", "Couldn't send reset email. Please make sure your username is correct." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika jest poprawna.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika lub adres email jest poprawny. Skontaktuj się z administratorem.", "%s password reset" : "%s reset hasła", "Use the following link to reset your password: {link}" : "Użyj tego odnośnika by zresetować hasło: {link}", "New password" : "Nowe hasło", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index 05c38bdcc0f..9e1d2b8a8f3 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -141,7 +141,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.", "Couldn't reset password because the token is invalid" : "Nie można zresetować hasła, ponieważ token jest niepoprawny", "Couldn't send reset email. Please make sure your username is correct." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika jest poprawna.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika lub adres email jest poprawny. Skontaktuj się z administratorem.", "%s password reset" : "%s reset hasła", "Use the following link to reset your password: {link}" : "Użyj tego odnośnika by zresetować hasło: {link}", "New password" : "Nowe hasło", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index fec5b66d345..23963477f55 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -191,7 +191,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido", "Couldn't reset password because the token is expired" : "Não foi possível redefinir a senha porque o token expirou", "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar e-mail de redefinição. Verifique se o seu nome de usuário está correto.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar e-mail de redefinição, porque não há nenhum endereço de e-mail para este nome de usuário. Por favor, contate o administrador.", "%s password reset" : "%s redefinir senha", "Use the following link to reset your password: {link}" : "Use o seguinte link para redefinir sua senha: {link}", "New password" : "Nova senha", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index d7735132e99..966ec449947 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -189,7 +189,6 @@ "Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido", "Couldn't reset password because the token is expired" : "Não foi possível redefinir a senha porque o token expirou", "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar e-mail de redefinição. Verifique se o seu nome de usuário está correto.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar e-mail de redefinição, porque não há nenhum endereço de e-mail para este nome de usuário. Por favor, contate o administrador.", "%s password reset" : "%s redefinir senha", "Use the following link to reset your password: {link}" : "Use o seguinte link para redefinir sua senha: {link}", "New password" : "Nova senha", diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index 53b9ab0bf77..0d28361a2c7 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -179,7 +179,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida", "Couldn't reset password because the token is expired" : "Não foi possível repor a palavra-passe porque a senha expirou", "Couldn't send reset email. Please make sure your username is correct." : "Ocorreu um problema com o envio do e-mail, por favor confirme o seu utilizador.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Ocorreu um problema com o envio do e-mail, por favor contacte o administrador.", "%s password reset" : "%s reposição da palavra-passe", "Use the following link to reset your password: {link}" : "Utilize a seguinte hiperligação para repor a sua palavra-passe: {link}", "New password" : "Nova palavra-chave", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index 8b7d483f270..e9cf78ce9a1 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -177,7 +177,6 @@ "Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida", "Couldn't reset password because the token is expired" : "Não foi possível repor a palavra-passe porque a senha expirou", "Couldn't send reset email. Please make sure your username is correct." : "Ocorreu um problema com o envio do e-mail, por favor confirme o seu utilizador.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Ocorreu um problema com o envio do e-mail, por favor contacte o administrador.", "%s password reset" : "%s reposição da palavra-passe", "Use the following link to reset your password: {link}" : "Utilize a seguinte hiperligação para repor a sua palavra-passe: {link}", "New password" : "Nova palavra-chave", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index 39302e9a18e..90a07917555 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Невозможно сбросить пароль из-за неверного токена", "Couldn't reset password because the token is expired" : "Не удается сбросить пароль, так как токен истек.", "Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо для сброса пароля. Убедитесь, что имя пользователя указано верно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Невозможно отправить письмо для сброса пароля, для вашей учетной записи не указан адрес электронной почты. Пожалуйста, свяжитесь с администратором.", "%s password reset" : "Сброс пароля %s", "Use the following link to reset your password: {link}" : "Используйте следующую ссылку чтобы сбросить пароль: {link}", "New password" : "Новый пароль", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index a24ee0831a0..93b8ce53dab 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "Невозможно сбросить пароль из-за неверного токена", "Couldn't reset password because the token is expired" : "Не удается сбросить пароль, так как токен истек.", "Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо для сброса пароля. Убедитесь, что имя пользователя указано верно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Невозможно отправить письмо для сброса пароля, для вашей учетной записи не указан адрес электронной почты. Пожалуйста, свяжитесь с администратором.", "%s password reset" : "Сброс пароля %s", "Use the following link to reset your password: {link}" : "Используйте следующую ссылку чтобы сбросить пароль: {link}", "New password" : "Новый пароль", diff --git a/core/l10n/sk_SK.js b/core/l10n/sk_SK.js index 2968a570a25..af5e6ce415a 100644 --- a/core/l10n/sk_SK.js +++ b/core/l10n/sk_SK.js @@ -180,7 +180,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Nemožno zmeniť heslo pre neplatnosť tokenu.", "Couldn't reset password because the token is expired" : "Nepodarilo sa obnoviť heslo, pretože platnosť tokenu uplynula.", "Couldn't send reset email. Please make sure your username is correct." : "Nemožno poslať email pre obnovu. Uistite sa, či vkladáte správne používateľské meno.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nemožno poslať email pre obnovu hesla, pretože pre tohoto používateľa nie je uvedená žiadna emailová adresa. Prosím, obráťte sa na administrátora.", "%s password reset" : "reset hesla %s", "Use the following link to reset your password: {link}" : "Použite nasledujúci odkaz pre obnovenie vášho hesla: {link}", "New password" : "Nové heslo", diff --git a/core/l10n/sk_SK.json b/core/l10n/sk_SK.json index 537985d28ed..77b7ea8b89b 100644 --- a/core/l10n/sk_SK.json +++ b/core/l10n/sk_SK.json @@ -178,7 +178,6 @@ "Couldn't reset password because the token is invalid" : "Nemožno zmeniť heslo pre neplatnosť tokenu.", "Couldn't reset password because the token is expired" : "Nepodarilo sa obnoviť heslo, pretože platnosť tokenu uplynula.", "Couldn't send reset email. Please make sure your username is correct." : "Nemožno poslať email pre obnovu. Uistite sa, či vkladáte správne používateľské meno.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nemožno poslať email pre obnovu hesla, pretože pre tohoto používateľa nie je uvedená žiadna emailová adresa. Prosím, obráťte sa na administrátora.", "%s password reset" : "reset hesla %s", "Use the following link to reset your password: {link}" : "Použite nasledujúci odkaz pre obnovenie vášho hesla: {link}", "New password" : "Nové heslo", diff --git a/core/l10n/sl.js b/core/l10n/sl.js index 7bd286c0c9b..46580d8c4ed 100644 --- a/core/l10n/sl.js +++ b/core/l10n/sl.js @@ -176,7 +176,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Ni mogoče ponastaviti gesla zaradi neustreznega žetona.", "Couldn't reset password because the token is expired" : "Ne moremo ponastaviti gesla, ker je ključ potekel.", "Couldn't send reset email. Please make sure your username is correct." : "Ni mogoče poslati elektronskega sporočila. Prepričajte se, da je uporabniško ime pravilno.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Ni mogoče poslati elektronskega sporočila za ponastavitev gesla, ker ni navedenega elektronskega naslova. Stopite v stik s skrbnikom sistema.", "%s password reset" : "Ponastavitev gesla %s", "Use the following link to reset your password: {link}" : "Za ponastavitev gesla uporabite povezavo: {link}", "New password" : "Novo geslo", diff --git a/core/l10n/sl.json b/core/l10n/sl.json index a63c829ac98..ae52da630ae 100644 --- a/core/l10n/sl.json +++ b/core/l10n/sl.json @@ -174,7 +174,6 @@ "Couldn't reset password because the token is invalid" : "Ni mogoče ponastaviti gesla zaradi neustreznega žetona.", "Couldn't reset password because the token is expired" : "Ne moremo ponastaviti gesla, ker je ključ potekel.", "Couldn't send reset email. Please make sure your username is correct." : "Ni mogoče poslati elektronskega sporočila. Prepričajte se, da je uporabniško ime pravilno.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Ni mogoče poslati elektronskega sporočila za ponastavitev gesla, ker ni navedenega elektronskega naslova. Stopite v stik s skrbnikom sistema.", "%s password reset" : "Ponastavitev gesla %s", "Use the following link to reset your password: {link}" : "Za ponastavitev gesla uporabite povezavo: {link}", "New password" : "Novo geslo", diff --git a/core/l10n/sq.js b/core/l10n/sq.js index 063cc97a631..ca938ce4015 100644 --- a/core/l10n/sq.js +++ b/core/l10n/sq.js @@ -191,7 +191,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "S’u ricaktua dot fjalëkalimi, ngaqë token-i është i pavlefshëm", "Couldn't reset password because the token is expired" : "S’u ricaktua dot fjalëkalimi, ngaqë token-i ka skaduar", "Couldn't send reset email. Please make sure your username is correct." : "S’u dërgua dot email ricaktimi. Ju lutemi, sigurohuni që emri juaj i përdoruesit është i saktë.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "S’u dërgua dot email ricaktimi, ngaqë s’ka adresë email për këtë përdoruesi. Ju lutemi, lidhuni me përgjegjësin tuaj.", "%s password reset" : "U ricaktua fjalëkalimi për %s", "Use the following link to reset your password: {link}" : "Që të ricaktoni fjalëkalimin tuaj, përdorni lidhjen vijuese: {link}", "New password" : "Fjalëkalim i ri", diff --git a/core/l10n/sq.json b/core/l10n/sq.json index 33efaa70b4f..aeb3c1d9dd7 100644 --- a/core/l10n/sq.json +++ b/core/l10n/sq.json @@ -189,7 +189,6 @@ "Couldn't reset password because the token is invalid" : "S’u ricaktua dot fjalëkalimi, ngaqë token-i është i pavlefshëm", "Couldn't reset password because the token is expired" : "S’u ricaktua dot fjalëkalimi, ngaqë token-i ka skaduar", "Couldn't send reset email. Please make sure your username is correct." : "S’u dërgua dot email ricaktimi. Ju lutemi, sigurohuni që emri juaj i përdoruesit është i saktë.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "S’u dërgua dot email ricaktimi, ngaqë s’ka adresë email për këtë përdoruesi. Ju lutemi, lidhuni me përgjegjësin tuaj.", "%s password reset" : "U ricaktua fjalëkalimi për %s", "Use the following link to reset your password: {link}" : "Që të ricaktoni fjalëkalimin tuaj, përdorni lidhjen vijuese: {link}", "New password" : "Fjalëkalim i ri", diff --git a/core/l10n/sr.js b/core/l10n/sr.js index aac106e61ad..6a918528512 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -167,7 +167,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Ажурирање је успело. Преусмеравам вас на оунКлауд.", "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку јер je токен неважећи", "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за ресетовање лозинке. Проверите да ли је корисничко име исправно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за ресетовање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.", "%s password reset" : "%s лозинка ресетована", "Use the following link to reset your password: {link}" : "Употребите следећу везу да ресетујете своју лозинку: {link}", "New password" : "Нова лозинка", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index c3af2764d0b..6e66b1f770e 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -165,7 +165,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Ажурирање је успело. Преусмеравам вас на оунКлауд.", "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку јер je токен неважећи", "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за ресетовање лозинке. Проверите да ли је корисничко име исправно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за ресетовање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.", "%s password reset" : "%s лозинка ресетована", "Use the following link to reset your password: {link}" : "Употребите следећу везу да ресетујете своју лозинку: {link}", "New password" : "Нова лозинка", diff --git a/core/l10n/sr@latin.js b/core/l10n/sr@latin.js index 18ab8513417..6b589324a9b 100644 --- a/core/l10n/sr@latin.js +++ b/core/l10n/sr@latin.js @@ -138,7 +138,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Ažuriranje je uspelo. Prosleđivanje na ownCloud.", "Couldn't reset password because the token is invalid" : "Nije bilo moguće ponovo postaviti lozinku zbog nevažećeg kontrolnog broja", "Couldn't send reset email. Please make sure your username is correct." : "Nije bilo moguće poslati Email za ponovno postavljanje. Molimo Vas da proverite da li je Vaše korisničko ime ispravno.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nije bilo moguće poslati Email za ponovno postavljanje lozinke jer nema Email adrese za ovo korisničko ime. Molimo Vas da kontaktirate Vašeg administratora.", "%s password reset" : "%s lozinka ponovo postavljena", "Use the following link to reset your password: {link}" : "Koristite sledeći link za reset lozinke: {link}", "New password" : "Nova lozinka", diff --git a/core/l10n/sr@latin.json b/core/l10n/sr@latin.json index 47b017d5a16..44f10846fec 100644 --- a/core/l10n/sr@latin.json +++ b/core/l10n/sr@latin.json @@ -136,7 +136,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Ažuriranje je uspelo. Prosleđivanje na ownCloud.", "Couldn't reset password because the token is invalid" : "Nije bilo moguće ponovo postaviti lozinku zbog nevažećeg kontrolnog broja", "Couldn't send reset email. Please make sure your username is correct." : "Nije bilo moguće poslati Email za ponovno postavljanje. Molimo Vas da proverite da li je Vaše korisničko ime ispravno.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Nije bilo moguće poslati Email za ponovno postavljanje lozinke jer nema Email adrese za ovo korisničko ime. Molimo Vas da kontaktirate Vašeg administratora.", "%s password reset" : "%s lozinka ponovo postavljena", "Use the following link to reset your password: {link}" : "Koristite sledeći link za reset lozinke: {link}", "New password" : "Nova lozinka", diff --git a/core/l10n/sv.js b/core/l10n/sv.js index cde3ece247a..99c106887fa 100644 --- a/core/l10n/sv.js +++ b/core/l10n/sv.js @@ -144,7 +144,6 @@ OC.L10N.register( "The update was successful. Redirecting you to ownCloud now." : "Uppdateringen lyckades. Du omdirigeras nu till OwnCloud.", "Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token", "Couldn't send reset email. Please make sure your username is correct." : "Kunde inte skicka återställningsmail. Vänligen kontrollera att ditt användarnamn är korrekt.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Kunde inte skicka något återställningsmail därför att det inte finns någon e-mailadress kopplad till detta användarnamn. Vänligen kontakta din administratör.", "%s password reset" : "%s återställ lösenord", "Use the following link to reset your password: {link}" : "Använd följande länk för att återställa lösenordet: {link}", "New password" : "Nytt lösenord", diff --git a/core/l10n/sv.json b/core/l10n/sv.json index 5c0666c2011..2e0651647f5 100644 --- a/core/l10n/sv.json +++ b/core/l10n/sv.json @@ -142,7 +142,6 @@ "The update was successful. Redirecting you to ownCloud now." : "Uppdateringen lyckades. Du omdirigeras nu till OwnCloud.", "Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token", "Couldn't send reset email. Please make sure your username is correct." : "Kunde inte skicka återställningsmail. Vänligen kontrollera att ditt användarnamn är korrekt.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Kunde inte skicka något återställningsmail därför att det inte finns någon e-mailadress kopplad till detta användarnamn. Vänligen kontakta din administratör.", "%s password reset" : "%s återställ lösenord", "Use the following link to reset your password: {link}" : "Använd följande länk för att återställa lösenordet: {link}", "New password" : "Nytt lösenord", diff --git a/core/l10n/th_TH.js b/core/l10n/th_TH.js index 7697ba81d7b..33816cc7075 100644 --- a/core/l10n/th_TH.js +++ b/core/l10n/th_TH.js @@ -191,7 +191,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "ไม่สามารถตั้งรหัสผ่านใหม่เพราะโทเค็นไม่ถูกต้อง", "Couldn't reset password because the token is expired" : "ไม่สามารถตั้งค่ารหัสผ่านเพราะโทเค็นหมดอายุ", "Couldn't send reset email. Please make sure your username is correct." : "ไม่สามารถส่งการตั้งค่าอีเมลใหม่ กรุณาตรวจสอบชื่อผู้ใช้ของคุณให้ถูกต้อง", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "ไม่สามารถส่งการตั้งค่าอีเมลใหม่เพราะไม่มีที่อยู่อีเมลนี้ กรุณาติดต่อผู้ดูแลระบบ", "%s password reset" : "%s ตั้งรหัสผ่านใหม่", "Use the following link to reset your password: {link}" : "ใช้ลิงค์ต่อไปนี้เพื่อเปลี่ยนรหัสผ่านของคุณใหม่: {link}", "New password" : "รหัสผ่านใหม่", diff --git a/core/l10n/th_TH.json b/core/l10n/th_TH.json index f26ef24b99a..aa2dbc993de 100644 --- a/core/l10n/th_TH.json +++ b/core/l10n/th_TH.json @@ -189,7 +189,6 @@ "Couldn't reset password because the token is invalid" : "ไม่สามารถตั้งรหัสผ่านใหม่เพราะโทเค็นไม่ถูกต้อง", "Couldn't reset password because the token is expired" : "ไม่สามารถตั้งค่ารหัสผ่านเพราะโทเค็นหมดอายุ", "Couldn't send reset email. Please make sure your username is correct." : "ไม่สามารถส่งการตั้งค่าอีเมลใหม่ กรุณาตรวจสอบชื่อผู้ใช้ของคุณให้ถูกต้อง", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "ไม่สามารถส่งการตั้งค่าอีเมลใหม่เพราะไม่มีที่อยู่อีเมลนี้ กรุณาติดต่อผู้ดูแลระบบ", "%s password reset" : "%s ตั้งรหัสผ่านใหม่", "Use the following link to reset your password: {link}" : "ใช้ลิงค์ต่อไปนี้เพื่อเปลี่ยนรหัสผ่านของคุณใหม่: {link}", "New password" : "รหัสผ่านใหม่", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 9a92eac50a7..5cef8c0a89f 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Belirteç geçersiz olduğundan parola sıfırlanamadı", "Couldn't reset password because the token is expired" : "Jeton zaman aşımına uğradığından parola sıfırlanamadı", "Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Sıfırlama e-postası, bu kullanıcı için bir e-posta adresi olmadığından gönderilemedi. Lütfen yöneticiniz ile iletişime geçin.", "%s password reset" : "%s parola sıfırlama", "Use the following link to reset your password: {link}" : "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}", "New password" : "Yeni parola", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index bb547a1a5f3..0be5d60d6d6 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "Belirteç geçersiz olduğundan parola sıfırlanamadı", "Couldn't reset password because the token is expired" : "Jeton zaman aşımına uğradığından parola sıfırlanamadı", "Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Sıfırlama e-postası, bu kullanıcı için bir e-posta adresi olmadığından gönderilemedi. Lütfen yöneticiniz ile iletişime geçin.", "%s password reset" : "%s parola sıfırlama", "Use the following link to reset your password: {link}" : "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}", "New password" : "Yeni parola", diff --git a/core/l10n/uk.js b/core/l10n/uk.js index bd1c5f679e8..1b2d0e93f7b 100644 --- a/core/l10n/uk.js +++ b/core/l10n/uk.js @@ -171,7 +171,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Неможливо скинути пароль, бо маркер є недійсним", "Couldn't reset password because the token is expired" : "Неможливо скинути пароль, бо маркер застарів", "Couldn't send reset email. Please make sure your username is correct." : "Не вдалося відправити скидання паролю. Будь ласка, переконайтеся, що ваше ім'я користувача є правильним.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не вдалося відправити скидання паролю, тому що немає адреси електронної пошти для цього користувача. Будь ласка, зверніться до адміністратора.", "%s password reset" : "%s скидання паролю", "Use the following link to reset your password: {link}" : "Використовуйте наступне посилання для скидання пароля: {link}", "New password" : "Новий пароль", diff --git a/core/l10n/uk.json b/core/l10n/uk.json index 4b95c4a92cd..8fc606244e2 100644 --- a/core/l10n/uk.json +++ b/core/l10n/uk.json @@ -169,7 +169,6 @@ "Couldn't reset password because the token is invalid" : "Неможливо скинути пароль, бо маркер є недійсним", "Couldn't reset password because the token is expired" : "Неможливо скинути пароль, бо маркер застарів", "Couldn't send reset email. Please make sure your username is correct." : "Не вдалося відправити скидання паролю. Будь ласка, переконайтеся, що ваше ім'я користувача є правильним.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не вдалося відправити скидання паролю, тому що немає адреси електронної пошти для цього користувача. Будь ласка, зверніться до адміністратора.", "%s password reset" : "%s скидання паролю", "Use the following link to reset your password: {link}" : "Використовуйте наступне посилання для скидання пароля: {link}", "New password" : "Новий пароль", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index 4beaacd347b..9c2b8beb0f6 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -187,7 +187,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "令牌无效,无法重置密码", "Couldn't reset password because the token is expired" : "无法重设密码,因为令牌已过期", "Couldn't send reset email. Please make sure your username is correct." : "无法发送重置邮件,请检查您的用户名是否正确。", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "此用户名的电子邮件地址不存在导致无法发送重置邮件,请联系管理员。", "%s password reset" : "重置 %s 的密码", "Use the following link to reset your password: {link}" : "使用以下链接重置您的密码:{link}", "New password" : "新密码", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index 65474210a20..aff40a4dc2d 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -185,7 +185,6 @@ "Couldn't reset password because the token is invalid" : "令牌无效,无法重置密码", "Couldn't reset password because the token is expired" : "无法重设密码,因为令牌已过期", "Couldn't send reset email. Please make sure your username is correct." : "无法发送重置邮件,请检查您的用户名是否正确。", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "此用户名的电子邮件地址不存在导致无法发送重置邮件,请联系管理员。", "%s password reset" : "重置 %s 的密码", "Use the following link to reset your password: {link}" : "使用以下链接重置您的密码:{link}", "New password" : "新密码", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index bf83a8eb3db..9aecca34103 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -186,7 +186,6 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "無法重設密碼因為 token 無效", "Couldn't reset password because the token is expired" : "無法重設密碼,因為 token 過期", "Couldn't send reset email. Please make sure your username is correct." : "無法寄送重設 email ,請確認您的帳號輸入正確", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "無法寄送重設 email ,因為這個帳號沒有設定 email 地址,請聯絡您的系統管理員", "%s password reset" : "%s 密碼重設", "Use the following link to reset your password: {link}" : "請至以下連結重設您的密碼: {link}", "New password" : "新密碼", diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index 89ed5f0c086..024aa29a4d5 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -184,7 +184,6 @@ "Couldn't reset password because the token is invalid" : "無法重設密碼因為 token 無效", "Couldn't reset password because the token is expired" : "無法重設密碼,因為 token 過期", "Couldn't send reset email. Please make sure your username is correct." : "無法寄送重設 email ,請確認您的帳號輸入正確", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "無法寄送重設 email ,因為這個帳號沒有設定 email 地址,請聯絡您的系統管理員", "%s password reset" : "%s 密碼重設", "Use the following link to reset your password: {link}" : "請至以下連結重設您的密碼: {link}", "New password" : "新密碼", diff --git a/lib/l10n/lt_LT.js b/lib/l10n/lt_LT.js index c93903ff75e..f73b1fdc871 100644 --- a/lib/l10n/lt_LT.js +++ b/lib/l10n/lt_LT.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Cannot write into \"config\" directory!" : "Negalima rašyti į \"config\" aplanką!", "This can usually be fixed by giving the webserver write access to the config directory" : "Tai gali būti ištaisyta suteikiant web serveriui rašymo teises į config aplanką", + "See %s" : "Žiūrėk %s", "PHP %s or higher is required." : "Reikalinga PHP %s arba aukštesnė.", "Help" : "Pagalba", "Personal" : "Asmeniniai", diff --git a/lib/l10n/lt_LT.json b/lib/l10n/lt_LT.json index 2784c3aefc1..e9acd6f2950 100644 --- a/lib/l10n/lt_LT.json +++ b/lib/l10n/lt_LT.json @@ -1,6 +1,7 @@ { "translations": { "Cannot write into \"config\" directory!" : "Negalima rašyti į \"config\" aplanką!", "This can usually be fixed by giving the webserver write access to the config directory" : "Tai gali būti ištaisyta suteikiant web serveriui rašymo teises į config aplanką", + "See %s" : "Žiūrėk %s", "PHP %s or higher is required." : "Reikalinga PHP %s arba aukštesnė.", "Help" : "Pagalba", "Personal" : "Asmeniniai", diff --git a/lib/private/appframework/middleware/security/corsmiddleware.php b/lib/private/appframework/middleware/security/corsmiddleware.php index 74b0dd09974..0e37e81c5be 100644 --- a/lib/private/appframework/middleware/security/corsmiddleware.php +++ b/lib/private/appframework/middleware/security/corsmiddleware.php @@ -23,6 +23,7 @@ namespace OC\AppFramework\Middleware\Security; +use OC\AppFramework\Middleware\Security\Exceptions\SecurityException; use OC\AppFramework\Utility\ControllerMethodReflector; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; diff --git a/lib/private/appframework/middleware/security/exceptions/appnotenabledexception.php b/lib/private/appframework/middleware/security/exceptions/appnotenabledexception.php new file mode 100644 index 00000000000..54cb08f4385 --- /dev/null +++ b/lib/private/appframework/middleware/security/exceptions/appnotenabledexception.php @@ -0,0 +1,36 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Appframework\Middleware\Security\Exceptions; + +use OCP\AppFramework\Http; + +/** + * Class AppNotEnabledException is thrown when a resource for an application is + * requested that is not enabled. + * + * @package OC\Appframework\Middleware\Security\Exceptions + */ +class AppNotEnabledException extends SecurityException { + public function __construct() { + parent::__construct('App is not enabled', Http::STATUS_PRECONDITION_FAILED); + } +} diff --git a/lib/private/appframework/middleware/security/exceptions/crosssiterequestforgeryexception.php b/lib/private/appframework/middleware/security/exceptions/crosssiterequestforgeryexception.php new file mode 100644 index 00000000000..c59c921f5eb --- /dev/null +++ b/lib/private/appframework/middleware/security/exceptions/crosssiterequestforgeryexception.php @@ -0,0 +1,36 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Appframework\Middleware\Security\Exceptions; + +use OCP\AppFramework\Http; + +/** + * Class CrossSiteRequestForgeryException is thrown when a CSRF exception has + * been encountered. + * + * @package OC\Appframework\Middleware\Security\Exceptions + */ +class CrossSiteRequestForgeryException extends SecurityException { + public function __construct() { + parent::__construct('CSRF check failed', Http::STATUS_PRECONDITION_FAILED); + } +} diff --git a/lib/private/appframework/middleware/security/exceptions/notadminexception.php b/lib/private/appframework/middleware/security/exceptions/notadminexception.php new file mode 100644 index 00000000000..3fa03cae896 --- /dev/null +++ b/lib/private/appframework/middleware/security/exceptions/notadminexception.php @@ -0,0 +1,36 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Appframework\Middleware\Security\Exceptions; + +use OCP\AppFramework\Http; + +/** + * Class NotAdminException is thrown when a resource has been requested by a + * non-admin user that is not accessible to non-admin users. + * + * @package OC\Appframework\Middleware\Security\Exceptions + */ +class NotAdminException extends SecurityException { + public function __construct() { + parent::__construct('Logged in user must be an admin', Http::STATUS_FORBIDDEN); + } +} diff --git a/lib/private/appframework/middleware/security/exceptions/notloggedinexception.php b/lib/private/appframework/middleware/security/exceptions/notloggedinexception.php new file mode 100644 index 00000000000..5f27625aa52 --- /dev/null +++ b/lib/private/appframework/middleware/security/exceptions/notloggedinexception.php @@ -0,0 +1,36 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Appframework\Middleware\Security\Exceptions; + +use OCP\AppFramework\Http; + +/** + * Class NotLoggedInException is thrown when a resource has been requested by a + * guest user that is not accessible to the public. + * + * @package OC\Appframework\Middleware\Security\Exceptions + */ +class NotLoggedInException extends SecurityException { + public function __construct() { + parent::__construct('Current user is not logged in', Http::STATUS_UNAUTHORIZED); + } +} diff --git a/lib/private/appframework/middleware/security/securityexception.php b/lib/private/appframework/middleware/security/exceptions/securityexception.php index 6f96b9a1d80..9b99282ce86 100644 --- a/lib/private/appframework/middleware/security/securityexception.php +++ b/lib/private/appframework/middleware/security/exceptions/securityexception.php @@ -1,7 +1,6 @@ <?php /** - * @author Morris Jobke <hey@morrisjobke.de> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Lukas Reschke <lukas@owncloud.com> * * @copyright Copyright (c) 2015, ownCloud, Inc. * @license AGPL-3.0 @@ -20,20 +19,12 @@ * */ - -namespace OC\AppFramework\Middleware\Security; - +namespace OC\AppFramework\Middleware\Security\Exceptions; /** - * Thrown when the security middleware encounters a security problem + * Class SecurityException is the base class for security exceptions thrown by + * the security middleware. + * + * @package OC\AppFramework\Middleware\Security\Exceptions */ -class SecurityException extends \Exception { - - /** - * @param string $msg the security error message - */ - public function __construct($msg, $code = 0) { - parent::__construct($msg, $code); - } - -} +class SecurityException extends \Exception {} diff --git a/lib/private/appframework/middleware/security/securitymiddleware.php b/lib/private/appframework/middleware/security/securitymiddleware.php index 34c626ce8be..d0b7202a360 100644 --- a/lib/private/appframework/middleware/security/securitymiddleware.php +++ b/lib/private/appframework/middleware/security/securitymiddleware.php @@ -28,8 +28,13 @@ namespace OC\AppFramework\Middleware\Security; use OC\AppFramework\Http; +use OC\Appframework\Middleware\Security\Exceptions\AppNotEnabledException; +use OC\Appframework\Middleware\Security\Exceptions\CrossSiteRequestForgeryException; +use OC\Appframework\Middleware\Security\Exceptions\NotAdminException; +use OC\Appframework\Middleware\Security\Exceptions\NotLoggedInException; use OC\AppFramework\Utility\ControllerMethodReflector; use OCP\AppFramework\Http\RedirectResponse; +use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Middleware; use OCP\AppFramework\Http\Response; use OCP\AppFramework\Http\JSONResponse; @@ -39,7 +44,7 @@ use OCP\IRequest; use OCP\ILogger; use OCP\AppFramework\Controller; use OCP\Util; - +use OC\AppFramework\Middleware\Security\Exceptions\SecurityException; /** * Used to do all the authentication and checking stuff for a controller method @@ -75,7 +80,7 @@ class SecurityMiddleware extends Middleware { ILogger $logger, $appName, $isLoggedIn, - $isAdminUser){ + $isAdminUser) { $this->navigationManager = $navigationManager; $this->request = $request; $this->reflector = $reflector; @@ -95,7 +100,7 @@ class SecurityMiddleware extends Middleware { * @param string $methodName the name of the method * @throws SecurityException when a security check fails */ - public function beforeController($controller, $methodName){ + public function beforeController($controller, $methodName) { // this will set the current navigation entry of the app, use this only // for normal HTML requests and not for AJAX requests @@ -105,12 +110,12 @@ class SecurityMiddleware extends Middleware { $isPublicPage = $this->reflector->hasAnnotation('PublicPage'); if(!$isPublicPage) { if(!$this->isLoggedIn) { - throw new SecurityException('Current user is not logged in', Http::STATUS_UNAUTHORIZED); + throw new NotLoggedInException(); } if(!$this->reflector->hasAnnotation('NoAdminRequired')) { if(!$this->isAdminUser) { - throw new SecurityException('Logged in user must be an admin', Http::STATUS_FORBIDDEN); + throw new NotAdminException(); } } } @@ -119,18 +124,18 @@ class SecurityMiddleware extends Middleware { Util::callRegister(); if(!$this->reflector->hasAnnotation('NoCSRFRequired')) { if(!$this->request->passesCSRFCheck()) { - throw new SecurityException('CSRF check failed', Http::STATUS_PRECONDITION_FAILED); + throw new CrossSiteRequestForgeryException(); } } /** * FIXME: Use DI once available - * Checks if app is enabled (also inclues a check whether user is allowed to access the resource) + * Checks if app is enabled (also includes a check whether user is allowed to access the resource) * The getAppPath() check is here since components such as settings also use the AppFramework and * therefore won't pass this check. */ if(\OC_App::getAppPath($this->appName) !== false && !\OC_App::isEnabled($this->appName)) { - throw new SecurityException('App is not enabled', Http::STATUS_PRECONDITION_FAILED); + throw new AppNotEnabledException(); } } @@ -146,28 +151,28 @@ class SecurityMiddleware extends Middleware { * @throws \Exception the passed in exception if it cant handle it * @return Response a Response object or null in case that the exception could not be handled */ - public function afterException($controller, $methodName, \Exception $exception){ - if($exception instanceof SecurityException){ - - if (stripos($this->request->getHeader('Accept'),'html')===false) { + public function afterException($controller, $methodName, \Exception $exception) { + if($exception instanceof SecurityException) { + if (stripos($this->request->getHeader('Accept'),'html') === false) { $response = new JSONResponse( array('message' => $exception->getMessage()), $exception->getCode() ); - $this->logger->debug($exception->getMessage()); } else { - - // TODO: replace with link to route - $url = $this->urlGenerator->getAbsoluteURL('index.php'); - // add redirect URL to redirect to the previous page after login - $url .= '?redirect_url=' . urlencode($this->request->server['REQUEST_URI']); - $response = new RedirectResponse($url); - $this->logger->debug($exception->getMessage()); + if($exception instanceof NotLoggedInException) { + // TODO: replace with link to route + $url = $this->urlGenerator->getAbsoluteURL('index.php'); + $url .= '?redirect_url=' . urlencode($this->request->server['REQUEST_URI']); + $response = new RedirectResponse($url); + } else { + $response = new TemplateResponse('core', '403', ['file' => $exception->getMessage()], 'guest'); + $response->setStatus($exception->getCode()); + } } + $this->logger->debug($exception->getMessage()); return $response; - } throw $exception; diff --git a/lib/public/backgroundjob/ijoblist.php b/lib/public/backgroundjob/ijoblist.php index e2dc348e54d..384f8b3d801 100644 --- a/lib/public/backgroundjob/ijoblist.php +++ b/lib/public/backgroundjob/ijoblist.php @@ -36,7 +36,6 @@ interface IJobList { * * @param \OCP\BackgroundJob\IJob|string $job * @param mixed $argument The argument to be passed to $job->run() when the job is exectured - * @param string $job * @return void * @since 7.0.0 */ diff --git a/tests/lib/appframework/middleware/security/CORSMiddlewareTest.php b/tests/lib/appframework/middleware/security/CORSMiddlewareTest.php index ca526fb859c..cf5f97a046f 100644 --- a/tests/lib/appframework/middleware/security/CORSMiddlewareTest.php +++ b/tests/lib/appframework/middleware/security/CORSMiddlewareTest.php @@ -14,7 +14,7 @@ namespace OC\AppFramework\Middleware\Security; use OC\AppFramework\Http\Request; use OC\AppFramework\Utility\ControllerMethodReflector; - +use OC\AppFramework\Middleware\Security\Exceptions\SecurityException; use OCP\AppFramework\Http; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\Response; @@ -91,7 +91,7 @@ class CORSMiddlewareTest extends \Test\TestCase { /** * @CORS - * @expectedException \OC\AppFramework\Middleware\Security\SecurityException + * @expectedException \OC\AppFramework\Middleware\Security\Exceptions\SecurityException */ public function testCorsIgnoredIfWithCredentialsHeaderPresent() { $request = new Request( @@ -160,7 +160,7 @@ class CORSMiddlewareTest extends \Test\TestCase { /** * @CORS - * @expectedException \OC\AppFramework\Middleware\Security\SecurityException + * @expectedException \OC\AppFramework\Middleware\Security\Exceptions\SecurityException */ public function testCORSShouldNotAllowCookieAuth() { $request = new Request( diff --git a/tests/lib/appframework/middleware/security/SecurityMiddlewareTest.php b/tests/lib/appframework/middleware/security/SecurityMiddlewareTest.php index 347a0423ea6..62223bbc2d9 100644 --- a/tests/lib/appframework/middleware/security/SecurityMiddlewareTest.php +++ b/tests/lib/appframework/middleware/security/SecurityMiddlewareTest.php @@ -1,34 +1,40 @@ <?php - /** - * ownCloud - App Framework + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Lukas Reschke <lukas@owncloud.com> * - * @author Bernhard Posselt - * @copyright 2012 Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE - * License as published by the Free Software Foundation; either - * version 3 of the License, or any later version. + * 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 library is distributed in the hope that it will be useful, + * 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. + * 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 along with this library. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> * */ + namespace OC\AppFramework\Middleware\Security; use OC\AppFramework\Http; use OC\AppFramework\Http\Request; +use OC\Appframework\Middleware\Security\Exceptions\AppNotEnabledException; +use OC\Appframework\Middleware\Security\Exceptions\CrossSiteRequestForgeryException; +use OC\Appframework\Middleware\Security\Exceptions\NotAdminException; +use OC\Appframework\Middleware\Security\Exceptions\NotLoggedInException; +use OC\AppFramework\Middleware\Security\Exceptions\SecurityException; use OC\AppFramework\Utility\ControllerMethodReflector; use OCP\AppFramework\Http\RedirectResponse; use OCP\AppFramework\Http\JSONResponse; +use OCP\AppFramework\Http\TemplateResponse; class SecurityMiddlewareTest extends \Test\TestCase { @@ -71,8 +77,12 @@ class SecurityMiddlewareTest extends \Test\TestCase { $this->secAjaxException = new SecurityException('hey', true); } - - private function getMiddleware($isLoggedIn, $isAdminUser){ + /** + * @param bool $isLoggedIn + * @param bool $isAdminUser + * @return SecurityMiddleware + */ + private function getMiddleware($isLoggedIn, $isAdminUser) { return new SecurityMiddleware( $this->request, $this->reader, @@ -219,8 +229,8 @@ class SecurityMiddlewareTest extends \Test\TestCase { $sec = $this->getMiddleware($isLoggedIn, $isAdminUser); - if($shouldFail){ - $this->setExpectedException('\OC\AppFramework\Middleware\Security\SecurityException'); + if($shouldFail) { + $this->setExpectedException('\OC\AppFramework\Middleware\Security\Exceptions\SecurityException'); } else { $this->assertTrue(true); } @@ -232,7 +242,7 @@ class SecurityMiddlewareTest extends \Test\TestCase { /** * @PublicPage - * @expectedException \OC\AppFramework\Middleware\Security\SecurityException + * @expectedException \OC\AppFramework\Middleware\Security\Exceptions\CrossSiteRequestForgeryException */ public function testCsrfCheck(){ $this->request->expects($this->once()) @@ -311,25 +321,85 @@ class SecurityMiddlewareTest extends \Test\TestCase { $this->middleware->afterException($this->controller, 'test', $ex); } - - public function testAfterExceptionReturnsRedirect(){ + public function testAfterExceptionReturnsRedirectForNotLoggedInUser() { $this->request = new Request( - [ - 'server' => [ - 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', - 'REQUEST_URI' => 'owncloud/index.php/apps/specialapp' - ] + 'server' => + [ + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'REQUEST_URI' => 'owncloud/index.php/apps/specialapp' + ] + ], + $this->getMock('\OCP\Security\ISecureRandom'), + $this->getMock('\OCP\IConfig') + ); + $this->middleware = $this->getMiddleware(false, false); + $this->urlGenerator + ->expects($this->once()) + ->method('getAbsoluteURL') + ->with('index.php') + ->will($this->returnValue('http://localhost/index.php')); + $this->logger + ->expects($this->once()) + ->method('debug') + ->with('Current user is not logged in'); + $response = $this->middleware->afterException( + $this->controller, + 'test', + new NotLoggedInException() + ); + + $expected = new RedirectResponse('http://localhost/index.php?redirect_url=owncloud%2Findex.php%2Fapps%2Fspecialapp'); + $this->assertEquals($expected , $response); + } + + /** + * @return array + */ + public function exceptionProvider() { + return [ + [ + new AppNotEnabledException(), + ], + [ + new CrossSiteRequestForgeryException(), ], - $this->getMock('\OCP\Security\ISecureRandom'), - $this->getMock('\OCP\IConfig') + [ + new NotAdminException(), + ], + ]; + } + + /** + * @dataProvider exceptionProvider + * @param SecurityException $exception + */ + public function testAfterExceptionReturnsTemplateResponse(SecurityException $exception) { + $this->request = new Request( + [ + 'server' => + [ + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'REQUEST_URI' => 'owncloud/index.php/apps/specialapp' + ] + ], + $this->getMock('\OCP\Security\ISecureRandom'), + $this->getMock('\OCP\IConfig') + ); + $this->middleware = $this->getMiddleware(false, false); + $this->logger + ->expects($this->once()) + ->method('debug') + ->with($exception->getMessage()); + $response = $this->middleware->afterException( + $this->controller, + 'test', + $exception ); - $this->middleware = $this->getMiddleware(true, true); - $response = $this->middleware->afterException($this->controller, 'test', - $this->secException); - $this->assertTrue($response instanceof RedirectResponse); - $this->assertEquals('?redirect_url=owncloud%2Findex.php%2Fapps%2Fspecialapp', $response->getRedirectURL()); + $expected = new TemplateResponse('core', '403', ['file' => $exception->getMessage()], 'guest'); + $expected->setStatus($exception->getCode()); + $this->assertEquals($expected , $response); } |