Skip to content
Snippets Groups Projects
Unverified Commit b7046d39 authored by Roeland Jago Douma's avatar Roeland Jago Douma
Browse files

Remove internal share mail function

parent 57e61250
No related branches found
No related tags found
No related merge requests found
......@@ -88,75 +88,6 @@ class MailNotifications {
$this->senderDisplayName = $this->user->getDisplayName();
}
/**
* inform users if a file was shared with them
*
* @param IUser[] $recipientList list of recipients
* @param string $itemSource shared item source
* @param string $itemType shared item type
* @return array list of user to whom the mail send operation failed
*/
public function sendInternalShareMail($recipientList, $itemSource, $itemType) {
$noMail = [];
foreach ($recipientList as $recipient) {
$recipientDisplayName = $recipient->getDisplayName();
$to = $recipient->getEMailAddress();
if ($to === '') {
$noMail[] = $recipientDisplayName;
continue;
}
$items = $this->getItemSharedWithUser($itemSource, $itemType, $recipient);
$filename = trim($items[0]['file_target'], '/');
$subject = (string) $this->l->t('%s shared »%s« with you', array($this->senderDisplayName, $filename));
$expiration = null;
if (isset($items[0]['expiration'])) {
try {
$date = new DateTime($items[0]['expiration']);
$expiration = $date->getTimestamp();
} catch (\Exception $e) {
$this->logger->error("Couldn't read date: ".$e->getMessage(), ['app' => 'sharing']);
}
}
$link = $this->urlGenerator->linkToRouteAbsolute(
'files.viewcontroller.showFile',
['fileId' => $items[0]['item_source']]
);
list($htmlBody, $textBody) = $this->createMailBody($filename, $link, $expiration, 'internal');
// send it out now
try {
$message = $this->mailer->createMessage();
$message->setSubject($subject);
$message->setTo([$to => $recipientDisplayName]);
$message->setHtmlBody($htmlBody);
$message->setPlainBody($textBody);
$message->setFrom([
Util::getDefaultEmailAddress('sharing-noreply') =>
(string)$this->l->t('%s via %s', [
$this->senderDisplayName,
$this->defaults->getName()
]),
]);
if(!is_null($this->replyTo)) {
$message->setReplyTo([$this->replyTo]);
}
$this->mailer->send($message);
} catch (\Exception $e) {
$this->logger->error("Can't send mail to inform the user about an internal share: ".$e->getMessage(), ['app' => 'sharing']);
$noMail[] = $recipientDisplayName;
}
}
return $noMail;
}
/**
* inform recipient about public link share
*
......@@ -224,15 +155,4 @@ class MailNotifications {
return [$htmlMail, $plainTextMail];
}
/**
* @param string $itemSource
* @param string $itemType
* @param IUser $recipient
* @return array
*/
protected function getItemSharedWithUser($itemSource, $itemType, $recipient) {
return Share::getItemSharedWithUser($itemType, $itemSource, $recipient->getUID());
}
}
......@@ -208,54 +208,6 @@ class MailNotificationsTest extends \Test\TestCase {
$this->assertSame(['lukas@owncloud.com'], $mailNotifications->sendLinkShareMail('lukas@owncloud.com', 'MyFile', 'https://owncloud.com/file/?foo=bar', 3600));
}
public function testSendInternalShareMail() {
$this->setupMailerMock('TestUser shared »welcome.txt« with you', ['recipient@owncloud.com' => 'Recipient'], false);
/** @var MailNotifications | \PHPUnit_Framework_MockObject_MockObject $mailNotifications */
$mailNotifications = $this->getMockBuilder(MailNotifications::class)
->setMethods(['getItemSharedWithUser'])
->setConstructorArgs([
$this->user,
$this->l10n,
$this->mailer,
$this->logger,
$this->defaults,
$this->urlGenerator
])
->getMock();
$mailNotifications->method('getItemSharedWithUser')
->withAnyParameters()
->willReturn([
['file_target' => '/welcome.txt', 'item_source' => 123],
]);
$recipient = $this->getMockBuilder('\OCP\IUser')
->disableOriginalConstructor()->getMock();
$recipient
->expects($this->once())
->method('getEMailAddress')
->willReturn('recipient@owncloud.com');
$recipient
->expects($this->once())
->method('getDisplayName')
->willReturn('Recipient');
$this->urlGenerator->expects($this->once())
->method('linkToRouteAbsolute')
->with(
$this->equalTo('files.viewcontroller.showFile'),
$this->equalTo([
'fileId' => 123,
])
);
$recipientList = [$recipient];
$result = $mailNotifications->sendInternalShareMail($recipientList, '3', 'file');
$this->assertSame([], $result);
}
/**
* @param string $subject
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment