From ce27e8cf34daea23117a9e5e0134957889aac332 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 18 Oct 2017 15:39:22 +0200 Subject: [PATCH 01/14] Add attachment support to emails Signed-off-by: Joas Schilling --- lib/composer/composer/autoload_classmap.php | 2 + lib/composer/composer/autoload_static.php | 2 + lib/private/Mail/Attachment.php | 78 +++++++++++++++++++++ lib/private/Mail/Message.php | 20 ++++++ lib/public/Mail/IAttachment.php | 53 ++++++++++++++ lib/public/Mail/IMessage.php | 16 ++++- 6 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 lib/private/Mail/Attachment.php create mode 100644 lib/public/Mail/IAttachment.php diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 489b9b3dc14..4f3326e2d74 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -224,6 +224,7 @@ return array( 'OCP\\Lock\\ILockingProvider' => $baseDir . '/lib/public/Lock/ILockingProvider.php', 'OCP\\Lock\\LockedException' => $baseDir . '/lib/public/Lock/LockedException.php', 'OCP\\Lockdown\\ILockdownManager' => $baseDir . '/lib/public/Lockdown/ILockdownManager.php', + 'OCP\\Mail\\IAttachment' => $baseDir . '/lib/public/Mail/IAttachment.php', 'OCP\\Mail\\IEMailTemplate' => $baseDir . '/lib/public/Mail/IEMailTemplate.php', 'OCP\\Mail\\IMailer' => $baseDir . '/lib/public/Mail/IMailer.php', 'OCP\\Mail\\IMessage' => $baseDir . '/lib/public/Mail/IMessage.php', @@ -705,6 +706,7 @@ return array( 'OC\\Log\\File' => $baseDir . '/lib/private/Log/File.php', 'OC\\Log\\Rotate' => $baseDir . '/lib/private/Log/Rotate.php', 'OC\\Log\\Syslog' => $baseDir . '/lib/private/Log/Syslog.php', + 'OC\\Mail\\Attachment' => $baseDir . '/lib/private/Mail/Attachment.php', 'OC\\Mail\\EMailTemplate' => $baseDir . '/lib/private/Mail/EMailTemplate.php', 'OC\\Mail\\Mailer' => $baseDir . '/lib/private/Mail/Mailer.php', 'OC\\Mail\\Message' => $baseDir . '/lib/private/Mail/Message.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 1297f4606f6..b9c5c004164 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -254,6 +254,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Lock\\ILockingProvider' => __DIR__ . '/../../..' . '/lib/public/Lock/ILockingProvider.php', 'OCP\\Lock\\LockedException' => __DIR__ . '/../../..' . '/lib/public/Lock/LockedException.php', 'OCP\\Lockdown\\ILockdownManager' => __DIR__ . '/../../..' . '/lib/public/Lockdown/ILockdownManager.php', + 'OCP\\Mail\\IAttachment' => __DIR__ . '/../../..' . '/lib/public/Mail/IAttachment.php', 'OCP\\Mail\\IEMailTemplate' => __DIR__ . '/../../..' . '/lib/public/Mail/IEMailTemplate.php', 'OCP\\Mail\\IMailer' => __DIR__ . '/../../..' . '/lib/public/Mail/IMailer.php', 'OCP\\Mail\\IMessage' => __DIR__ . '/../../..' . '/lib/public/Mail/IMessage.php', @@ -735,6 +736,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Log\\File' => __DIR__ . '/../../..' . '/lib/private/Log/File.php', 'OC\\Log\\Rotate' => __DIR__ . '/../../..' . '/lib/private/Log/Rotate.php', 'OC\\Log\\Syslog' => __DIR__ . '/../../..' . '/lib/private/Log/Syslog.php', + 'OC\\Mail\\Attachment' => __DIR__ . '/../../..' . '/lib/private/Mail/Attachment.php', 'OC\\Mail\\EMailTemplate' => __DIR__ . '/../../..' . '/lib/private/Mail/EMailTemplate.php', 'OC\\Mail\\Mailer' => __DIR__ . '/../../..' . '/lib/private/Mail/Mailer.php', 'OC\\Mail\\Message' => __DIR__ . '/../../..' . '/lib/private/Mail/Message.php', diff --git a/lib/private/Mail/Attachment.php b/lib/private/Mail/Attachment.php new file mode 100644 index 00000000000..7b85ad1dbb9 --- /dev/null +++ b/lib/private/Mail/Attachment.php @@ -0,0 +1,78 @@ + + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see . + * + */ + +namespace OC\Mail; + +use OCP\Mail\IAttachment; + +/** + * Class Attachment + * + * @package OC\Mail + * @since 13.0.0 + */ +class Attachment implements IAttachment { + + /** @var \Swift_Mime_Attachment */ + protected $swiftAttachment; + + public function __construct(\Swift_Mime_Attachment $attachment) { + $this->swiftAttachment = $attachment; + } + + /** + * @param string $filename + * @return $this + * @since 13.0.0 + */ + public function setFilename($filename) { + $this->swiftAttachment->setFilename($filename); + return $this; + } + + /** + * @param string $contentType + * @return $this + * @since 13.0.0 + */ + public function setContentType($contentType) { + $this->swiftAttachment->setContentType($contentType); + return $this; + } + + /** + * @param string $body + * @return $this + * @since 13.0.0 + */ + public function setBody($body) { + $this->swiftAttachment->setBody($body); + return $this; + } + + /** + * @return \Swift_Mime_Attachment + */ + public function getSwiftAttachment() { + return $this->swiftAttachment; + } + +} diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index b4d1e4dbe7a..35c2c2d84ea 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -23,6 +23,7 @@ namespace OC\Mail; +use OCP\Mail\IAttachment; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMessage; use Swift_Message; @@ -43,6 +44,25 @@ class Message implements IMessage { $this->swiftMessage = $swiftMessage; } + /** + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment() { + return new Attachment(\Swift_Attachment::newInstance()); + } + + /** + * @param IAttachment $attachment + * @return $this + * @since 13.0.0 + */ + public function attach(IAttachment $attachment) { + /** @var Attachment $attachment */ + $this->swiftMessage->attach($attachment->getSwiftAttachment()); + return $this; + } + /** * SwiftMailer does currently not work with IDN domains, this function therefore converts the domains * FIXME: Remove this once SwiftMailer supports IDN diff --git a/lib/public/Mail/IAttachment.php b/lib/public/Mail/IAttachment.php new file mode 100644 index 00000000000..32348e7a309 --- /dev/null +++ b/lib/public/Mail/IAttachment.php @@ -0,0 +1,53 @@ + + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see . + * + */ + +namespace OCP\Mail; + +/** + * Interface IAttachment + * + * @package OCP\Mail + * @since 13.0.0 + */ +interface IAttachment { + + /** + * @param string $filename + * @return $this + * @since 13.0.0 + */ + public function setFilename($filename); + + /** + * @param string $contentType + * @return $this + * @since 13.0.0 + */ + public function setContentType($contentType); + + /** + * @param string $body + * @return $this + * @since 13.0.0 + */ + public function setBody($body); + +} diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index 20e4ea19c4c..7f061cece05 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -22,12 +22,26 @@ namespace OCP\Mail; /** - * Class Message + * Interface IMessage * * @package OCP\Mail * @since 13.0.0 */ interface IMessage { + + /** + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment(); + + /** + * @param IAttachment $attachment + * @return $this + * @since 13.0.0 + */ + public function attach(IAttachment $attachment); + /** * Set the from address of this message. * From dcb322a6b330b7bd797f8a9faf63114129c56f75 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 19 Oct 2017 11:05:47 +0200 Subject: [PATCH 02/14] Extend the API with teh parameters from Swift Signed-off-by: Joas Schilling --- lib/private/Mail/Message.php | 17 +++++++++++++++-- lib/public/Mail/IMessage.php | 13 ++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index 35c2c2d84ea..7b198e91b36 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -45,11 +45,24 @@ class Message implements IMessage { } /** + * @param string $data + * @param string $filename + * @param string $contentType * @return IAttachment * @since 13.0.0 */ - public function createAttachment() { - return new Attachment(\Swift_Attachment::newInstance()); + public function createAttachment($data = null, $filename = null, $contentType = null) { + return new Attachment(\Swift_Attachment::newInstance($data, $filename, $contentType)); + } + + /** + * @param string $path + * @param string $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachmentFromPath($path, $contentType = null) { + return new Attachment(\Swift_Attachment::fromPath($path, $contentType)); } /** diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index 7f061cece05..6ae50ca8842 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -30,10 +30,21 @@ namespace OCP\Mail; interface IMessage { /** + * @param string $data + * @param string $filename + * @param string $contentType * @return IAttachment * @since 13.0.0 */ - public function createAttachment(); + public function createAttachment($data = null, $filename = null, $contentType = null); + + /** + * @param string $path + * @param string $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachmentFromPath($path, $contentType = null); /** * @param IAttachment $attachment From 65e938c4fdbda3c88e79c83e43e7ea8a22789408 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 19 Oct 2017 11:18:21 +0200 Subject: [PATCH 03/14] Fix docs Signed-off-by: Joas Schilling --- lib/private/Mail/Message.php | 8 ++++---- lib/public/Mail/IMessage.php | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index 7b198e91b36..fb16c59c51e 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -45,9 +45,9 @@ class Message implements IMessage { } /** - * @param string $data - * @param string $filename - * @param string $contentType + * @param string|null $data + * @param string|null $filename + * @param string|null $contentType * @return IAttachment * @since 13.0.0 */ @@ -57,7 +57,7 @@ class Message implements IMessage { /** * @param string $path - * @param string $contentType + * @param string|null $contentType * @return IAttachment * @since 13.0.0 */ diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index 6ae50ca8842..45c01b7079f 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -30,9 +30,9 @@ namespace OCP\Mail; interface IMessage { /** - * @param string $data - * @param string $filename - * @param string $contentType + * @param string|null $data + * @param string|null $filename + * @param string|null $contentType * @return IAttachment * @since 13.0.0 */ @@ -40,7 +40,7 @@ interface IMessage { /** * @param string $path - * @param string $contentType + * @param string|null $contentType * @return IAttachment * @since 13.0.0 */ From 2b425960b84f79fcb377273b469f7b83f8cc727f Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 24 Oct 2017 15:10:35 +0200 Subject: [PATCH 04/14] Define constants for the talk user agents Signed-off-by: Joas Schilling --- lib/public/IRequest.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/public/IRequest.php b/lib/public/IRequest.php index 98d8f5bb83a..262b595acc7 100644 --- a/lib/public/IRequest.php +++ b/lib/public/IRequest.php @@ -68,6 +68,11 @@ interface IRequest { */ const USER_AGENT_CLIENT_ANDROID = '/^Mozilla\/5\.0 \(Android\) ownCloud\-android.*$/'; + /** + * @since 13.0.0 + */ + const USER_AGENT_TALK_ANDROID = '/^Mozilla\/5\.0 \(Android\) Nextcloud\-Talk v.*$/'; + /** * @since 9.1.0 */ @@ -78,6 +83,11 @@ interface IRequest { */ const USER_AGENT_CLIENT_IOS = '/^Mozilla\/5\.0 \(iOS\) (ownCloud|Nextcloud)\-iOS.*$/'; + /** + * @since 13.0.0 + */ + const USER_AGENT_TALK_IOS = '/^Mozilla\/5\.0 \(iOS\) Nextcloud\-Talk v.*$/'; + /** * @param string $name * From 6a035bd0a0ea3f7a8811a2a970dcb22450fa26e0 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 25 Oct 2017 09:26:57 +0200 Subject: [PATCH 05/14] Move attachment creators to mailer class Signed-off-by: Joas Schilling --- lib/private/Mail/Mailer.php | 22 ++++++++++++++++++++++ lib/private/Mail/Message.php | 21 --------------------- lib/public/Mail/IMailer.php | 17 +++++++++++++++++ lib/public/Mail/IMessage.php | 17 ----------------- 4 files changed, 39 insertions(+), 38 deletions(-) diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php index 43fdb07b810..ad59d640b3e 100644 --- a/lib/private/Mail/Mailer.php +++ b/lib/private/Mail/Mailer.php @@ -26,6 +26,7 @@ use OCP\Defaults; use OCP\IConfig; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\Mail\IAttachment; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMailer; use OCP\ILogger; @@ -91,6 +92,27 @@ class Mailer implements IMailer { return new Message(new \Swift_Message()); } + /** + * @param string|null $data + * @param string|null $filename + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment($data = null, $filename = null, $contentType = null) { + return new Attachment(\Swift_Attachment::newInstance($data, $filename, $contentType)); + } + + /** + * @param string $path + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachmentFromPath($path, $contentType = null) { + return new Attachment(\Swift_Attachment::fromPath($path, $contentType)); + } + /** * Creates a new email template object * diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index fb16c59c51e..dcd4a66e996 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -44,27 +44,6 @@ class Message implements IMessage { $this->swiftMessage = $swiftMessage; } - /** - * @param string|null $data - * @param string|null $filename - * @param string|null $contentType - * @return IAttachment - * @since 13.0.0 - */ - public function createAttachment($data = null, $filename = null, $contentType = null) { - return new Attachment(\Swift_Attachment::newInstance($data, $filename, $contentType)); - } - - /** - * @param string $path - * @param string|null $contentType - * @return IAttachment - * @since 13.0.0 - */ - public function createAttachmentFromPath($path, $contentType = null) { - return new Attachment(\Swift_Attachment::fromPath($path, $contentType)); - } - /** * @param IAttachment $attachment * @return $this diff --git a/lib/public/Mail/IMailer.php b/lib/public/Mail/IMailer.php index 35189c22a69..10096548256 100644 --- a/lib/public/Mail/IMailer.php +++ b/lib/public/Mail/IMailer.php @@ -53,6 +53,23 @@ interface IMailer { */ public function createMessage(); + /** + * @param string|null $data + * @param string|null $filename + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment($data = null, $filename = null, $contentType = null); + + /** + * @param string $path + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachmentFromPath($path, $contentType = null); + /** * Creates a new email template object * diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index 45c01b7079f..e82b4ff93a9 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -29,23 +29,6 @@ namespace OCP\Mail; */ interface IMessage { - /** - * @param string|null $data - * @param string|null $filename - * @param string|null $contentType - * @return IAttachment - * @since 13.0.0 - */ - public function createAttachment($data = null, $filename = null, $contentType = null); - - /** - * @param string $path - * @param string|null $contentType - * @return IAttachment - * @since 13.0.0 - */ - public function createAttachmentFromPath($path, $contentType = null); - /** * @param IAttachment $attachment * @return $this From 419ddeacee70f32804fa29c8a5149685d6631555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Thu, 26 Oct 2017 17:54:44 +0200 Subject: [PATCH 06/14] Fix checkboxes on popover MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- apps/files_sharing/css/sharetabview.scss | 5 ----- core/css/apps.scss | 6 ++++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/files_sharing/css/sharetabview.scss b/apps/files_sharing/css/sharetabview.scss index cb2bb463352..5e51f13b8b1 100644 --- a/apps/files_sharing/css/sharetabview.scss +++ b/apps/files_sharing/css/sharetabview.scss @@ -100,11 +100,6 @@ opacity: .5; } -#shareWithList .shareOption.menuitem > label:before { - /* Checkboxes positionning */ - margin: 0 12px !important; -} - #shareWithList .unshare { padding: 1px 6px; vertical-align: text-bottom; diff --git a/core/css/apps.scss b/core/css/apps.scss index 4f17c91764e..159982e0bf1 100644 --- a/core/css/apps.scss +++ b/core/css/apps.scss @@ -864,6 +864,12 @@ kbd { width: 16px; padding: 0 10px; } + > input.checkbox + label { + padding: 0 !important; + &::before { + margin: -2px 12px 0; + } + } } [class^='icon-'], [class*=' icon-']{ From 97638e76ad91c9408a8d956fef7b6d6f8940b457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Thu, 26 Oct 2017 18:12:29 +0200 Subject: [PATCH 07/14] Share views fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- apps/files_sharing/css/sharetabview.scss | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/apps/files_sharing/css/sharetabview.scss b/apps/files_sharing/css/sharetabview.scss index 5e51f13b8b1..880226e7d14 100644 --- a/apps/files_sharing/css/sharetabview.scss +++ b/apps/files_sharing/css/sharetabview.scss @@ -41,17 +41,6 @@ padding: 18px 0 18px 36px; } -/* fix clickable area because in the share tab popover the label is inside the actual menu item*/ -#shareWithList .popovermenu .shareOption { - padding-right: 0 !important; -} -/* fix clickable area because in the share tab popover the label is inside the actual menu item*/ -.shareTabView .popovermenu label { - width: 100%; - display: inline-block; - padding: 0 10px 0 0 !important; -} - .shareTabView label { white-space: nowrap; } From 8660b9f0afa37983b66895a78a0f41417365efe0 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 27 Oct 2017 11:46:20 +0200 Subject: [PATCH 08/14] Unit tests for #6977 Signed-off-by: Joas Schilling --- tests/lib/LoggerTest.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/lib/LoggerTest.php b/tests/lib/LoggerTest.php index da9cedc9f56..3a30bbd1d3b 100644 --- a/tests/lib/LoggerTest.php +++ b/tests/lib/LoggerTest.php @@ -138,6 +138,32 @@ class LoggerTest extends TestCase { } } + /** + * @dataProvider userAndPasswordData + */ + public function testDetectclosure($user, $password) { + $a = function($user, $password) { + throw new \Exception('test'); + }; + + try { + $a($user, $password); + } catch (\Exception $e) { + $this->logger->logException($e); + } + $logLines = $this->getLogs(); + + foreach($logLines as $logLine) { + $log = explode('\n', $logLine); + unset($log[1]); // Remove `testDetectclosure(` because we are not testing this here, but the closure on stack trace 0 + $logLine = implode('\n', $log); + + $this->assertNotContains($user, $logLine); + $this->assertNotContains($password, $logLine); + $this->assertContains('{closure}(*** sensitive parameters replaced ***)', $logLine); + } + } + public function dataGetLogClass() { return [ ['file', \OC\Log\File::class], From 94f3fc63bc059423234cf135bee409e061320bda Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Sat, 28 Oct 2017 11:49:01 +0200 Subject: [PATCH 09/14] Use ::class and fix missing doc Signed-off-by: Joas Schilling --- lib/private/Files/Storage/Local.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index 0577093712e..c9cb6f246d7 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -408,10 +408,11 @@ class Local extends \OC\Files\Storage\Common { * @param IStorage $sourceStorage * @param string $sourceInternalPath * @param string $targetInternalPath + * @param bool $preserveMtime * @return bool */ public function copyFromStorage(IStorage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false) { - if ($sourceStorage->instanceOfStorage('\OC\Files\Storage\Local')) { + if ($sourceStorage->instanceOfStorage(Local::class)) { if ($sourceStorage->instanceOfStorage(Jail::class)) { /** * @var \OC\Files\Storage\Wrapper\Jail $sourceStorage From bde78decc2604c4e5013b8231c7b767866429c31 Mon Sep 17 00:00:00 2001 From: Johannes Schlichenmaier Date: Sun, 29 Oct 2017 23:37:29 +0100 Subject: [PATCH 10/14] Extended list of sensitive configuration values In accordance with the issuetemplate app issue: https://github.com/nextcloud/issuetemplate/issues/27 Signed-off-by: Johannes Schlichenmaier --- lib/private/SystemConfig.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/private/SystemConfig.php b/lib/private/SystemConfig.php index 3610486140d..91afbeb8967 100644 --- a/lib/private/SystemConfig.php +++ b/lib/private/SystemConfig.php @@ -37,22 +37,30 @@ class SystemConfig { /** @var array */ protected $sensitiveValues = [ + 'instanceid' => true, + 'trusted_domains' => true, + 'datadirectory' => true, + 'overwrite.cli.url' => true, 'dbname' => true, + 'dbhost' => true, 'dbpassword' => true, 'dbuser' => true, 'mail_from_address' => true, 'mail_domain' => true, + 'mail_smtphost' => true, 'mail_smtpname' => true, 'mail_smtppassword' => true, 'passwordsalt' => true, 'secret' => true, 'updater.secret' => true, + 'trusted_proxies' => true, 'proxyuserpwd' => true, 'log.condition' => [ 'shared_secret' => true, ], 'license-key' => true, 'redis' => [ + 'host' => true, 'password' => true, ], 'objectstore' => [ From 5521937dc4f2156f59295252a724e1d7c15e884d Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Mon, 30 Oct 2017 01:08:34 +0000 Subject: [PATCH 11/14] [tx-robot] updated from transifex --- apps/files/l10n/hu.js | 1 + apps/files/l10n/hu.json | 1 + settings/l10n/de.js | 4 ++-- settings/l10n/de.json | 4 ++-- settings/l10n/de_DE.js | 4 ++-- settings/l10n/de_DE.json | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js index fc6276a6e46..0c770e4a1db 100644 --- a/apps/files/l10n/hu.js +++ b/apps/files/l10n/hu.js @@ -16,6 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.", "Target folder \"{dir}\" does not exist any more" : "A cél mappa már nem létezik: \"{dir}\"", "Not enough free space" : "Nincs elég szabad hely", + "Uploading …" : "Feltöltés...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Actions" : "Műveletek", diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json index 1e235bf5c47..9e7d724c06e 100644 --- a/apps/files/l10n/hu.json +++ b/apps/files/l10n/hu.json @@ -14,6 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.", "Target folder \"{dir}\" does not exist any more" : "A cél mappa már nem létezik: \"{dir}\"", "Not enough free space" : "Nincs elég szabad hely", + "Uploading …" : "Feltöltés...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Actions" : "Műveletek", diff --git a/settings/l10n/de.js b/settings/l10n/de.js index be3aaf1ce4e..6ffc87058fe 100644 --- a/settings/l10n/de.js +++ b/settings/l10n/de.js @@ -68,7 +68,7 @@ OC.L10N.register( "Your email address on %s was changed by an administrator." : "Deine E-Mail-Adresse auf %s wurde von einen Administrator geändert.", "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", - "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", + "The new email address is %s" : "Die neue E-Mail-Adresse lautet %s", "Your %s account was created" : "Dein %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", @@ -101,7 +101,7 @@ OC.L10N.register( "Enable" : "Aktivieren", "Enabling app …" : "Aktiviere App…", "Error while enabling app" : "Beim Aktivieren der App ist ein Fehler aufgetreten", - "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Error: This app can not be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", "No app updates available" : "Keine App-Aktualisierungen verfügbar", diff --git a/settings/l10n/de.json b/settings/l10n/de.json index a386f77b42a..939caad194e 100644 --- a/settings/l10n/de.json +++ b/settings/l10n/de.json @@ -66,7 +66,7 @@ "Your email address on %s was changed by an administrator." : "Deine E-Mail-Adresse auf %s wurde von einen Administrator geändert.", "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", - "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", + "The new email address is %s" : "Die neue E-Mail-Adresse lautet %s", "Your %s account was created" : "Dein %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", @@ -99,7 +99,7 @@ "Enable" : "Aktivieren", "Enabling app …" : "Aktiviere App…", "Error while enabling app" : "Beim Aktivieren der App ist ein Fehler aufgetreten", - "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Error: This app can not be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", "No app updates available" : "Keine App-Aktualisierungen verfügbar", diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js index e883366c16c..336a438402f 100644 --- a/settings/l10n/de_DE.js +++ b/settings/l10n/de_DE.js @@ -68,7 +68,7 @@ OC.L10N.register( "Your email address on %s was changed by an administrator." : "Ihre E-Mail-Adresse auf %s wurde von einem Administrator geändert.", "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", - "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", + "The new email address is %s" : "Die neue E-Mail-Adresse lautet %s", "Your %s account was created" : "Ihr %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", @@ -101,7 +101,7 @@ OC.L10N.register( "Enable" : "Aktivieren", "Enabling app …" : "Aktiviere App…", "Error while enabling app" : "Beim Aktivieren der App ist ein Fehler aufgetreten", - "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Error: This app can not be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", "No app updates available" : "Keine App-Aktualisierungen verfügbar", diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json index 352f00107c6..b6485921b44 100644 --- a/settings/l10n/de_DE.json +++ b/settings/l10n/de_DE.json @@ -66,7 +66,7 @@ "Your email address on %s was changed by an administrator." : "Ihre E-Mail-Adresse auf %s wurde von einem Administrator geändert.", "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", - "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", + "The new email address is %s" : "Die neue E-Mail-Adresse lautet %s", "Your %s account was created" : "Ihr %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", @@ -99,7 +99,7 @@ "Enable" : "Aktivieren", "Enabling app …" : "Aktiviere App…", "Error while enabling app" : "Beim Aktivieren der App ist ein Fehler aufgetreten", - "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Error: This app can not be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", "No app updates available" : "Keine App-Aktualisierungen verfügbar", From 9df618131b5552577c0c79fa71ec0ead1c4493cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Mon, 30 Oct 2017 17:09:15 +0100 Subject: [PATCH 12/14] Show favourite action as the first one in the file actions menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Calviño Sánchez --- apps/files/js/tagsplugin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js index 2286477750c..7e2aecef6fa 100644 --- a/apps/files/js/tagsplugin.js +++ b/apps/files/js/tagsplugin.js @@ -103,7 +103,7 @@ return t('files', 'Add to favorites'); }, mime: 'all', - order: -23, + order: -100, permissions: OC.PERMISSION_READ, iconClass: function(fileName, context) { var $file = context.$file; From 446a3d2f215f52529955ebe4edd036806f00bfb2 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Mon, 30 Oct 2017 18:17:59 +0100 Subject: [PATCH 13/14] Reverse favorite icon coloring in files action menu Signed-off-by: Jan-Christoph Borchardt --- apps/files/js/tagsplugin.js | 4 ++-- core/css/icons.scss | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js index 7e2aecef6fa..747a7245a56 100644 --- a/apps/files/js/tagsplugin.js +++ b/apps/files/js/tagsplugin.js @@ -110,10 +110,10 @@ var isFavorite = $file.data('favorite') === true; if (isFavorite) { - return 'icon-starred'; + return 'icon-star-dark'; } - return 'icon-star'; + return 'icon-starred'; }, actionHandler: function(fileName, context) { var $favoriteMarkEl = context.$file.find('.favorite-mark'); diff --git a/core/css/icons.scss b/core/css/icons.scss index 6d855381fae..c8f61c1422e 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -348,6 +348,10 @@ img, object, video, button, textarea, input, select { background-image: url('../img/actions/star.svg?v=1'); } +.icon-star-dark { + background-image: url('../img/actions/star-dark.svg?v=1'); +} + .icon-starred { &:hover, &:focus { background-image: url('../img/actions/star.svg?v=1'); From 638be96232e8e35345509ba6f6a83905a312a57a Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Mon, 30 Oct 2017 21:06:35 +0100 Subject: [PATCH 14/14] Do not error when downloading from a numeric public subfolder Fixes #6820 Signed-off-by: Roeland Jago Douma --- apps/files_sharing/lib/Controller/ShareController.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php index ed9ad33417a..700ac220804 100644 --- a/apps/files_sharing/lib/Controller/ShareController.php +++ b/apps/files_sharing/lib/Controller/ShareController.php @@ -458,6 +458,10 @@ class ShareController extends Controller { if ($files_list === null) { $files_list = [$files]; } + // Just in case $files is a single int like '1234' + if (!is_array($files_list)) { + $files_list = [$files_list]; + } } $userFolder = $this->rootFolder->getUserFolder($share->getShareOwner());