Merge branch 'master' into master
This commit is contained in:
commit
936486413d
22 changed files with 260 additions and 29 deletions
|
@ -103,17 +103,17 @@
|
|||
return t('files', 'Add to favorites');
|
||||
},
|
||||
mime: 'all',
|
||||
order: -23,
|
||||
order: -100,
|
||||
permissions: OC.PERMISSION_READ,
|
||||
iconClass: function(fileName, context) {
|
||||
var $file = context.$file;
|
||||
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');
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
@ -100,11 +89,6 @@
|
|||
opacity: .5;
|
||||
}
|
||||
|
||||
#shareWithList .shareOption.menuitem > label:before {
|
||||
/* Checkboxes positionning */
|
||||
margin: 0 12px !important;
|
||||
}
|
||||
|
||||
#shareWithList .unshare {
|
||||
padding: 1px 6px;
|
||||
vertical-align: text-bottom;
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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-']{
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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',
|
||||
|
@ -706,6 +707,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',
|
||||
|
|
|
@ -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',
|
||||
|
@ -736,6 +737,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',
|
||||
|
|
|
@ -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
|
||||
|
|
78
lib/private/Mail/Attachment.php
Normal file
78
lib/private/Mail/Attachment.php
Normal file
|
@ -0,0 +1,78 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
||||
*
|
||||
* @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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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,17 @@ class Message implements IMessage {
|
|||
$this->swiftMessage = $swiftMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* @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
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
53
lib/public/Mail/IAttachment.php
Normal file
53
lib/public/Mail/IAttachment.php
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
||||
*
|
||||
* @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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
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);
|
||||
|
||||
}
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -22,12 +22,20 @@
|
|||
namespace OCP\Mail;
|
||||
|
||||
/**
|
||||
* Class Message
|
||||
* Interface IMessage
|
||||
*
|
||||
* @package OCP\Mail
|
||||
* @since 13.0.0
|
||||
*/
|
||||
interface IMessage {
|
||||
|
||||
/**
|
||||
* @param IAttachment $attachment
|
||||
* @return $this
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function attach(IAttachment $attachment);
|
||||
|
||||
/**
|
||||
* Set the from address of this message.
|
||||
*
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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],
|
||||
|
|
Loading…
Reference in a new issue