diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-11-19 12:47:50 +0300 |
---|---|---|
committer | GretaD <gretadoci@gmail.com> | 2020-12-03 15:57:54 +0300 |
commit | 87d99c0e5629ae4551d3776bef554dd3c448aebf (patch) | |
tree | ccbd7bb5890fca25b51a10a824b0b4dcd9bf6ffc /lib/Controller/MessagesController.php | |
parent | 44a004276a21e57aeca78b71599b5ec3aa7d5d13 (diff) |
Allow always showing images from trusted senders
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/Controller/MessagesController.php')
-rwxr-xr-x | lib/Controller/MessagesController.php | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/lib/Controller/MessagesController.php b/lib/Controller/MessagesController.php index c366fcd34..17f8ef578 100755 --- a/lib/Controller/MessagesController.php +++ b/lib/Controller/MessagesController.php @@ -34,6 +34,8 @@ use Exception; use OC\Security\CSP\ContentSecurityPolicyNonceManager; use OCA\Mail\Contracts\IMailManager; use OCA\Mail\Contracts\IMailSearch; +use OCA\Mail\Contracts\ITrustedSenderService; +use OCA\Mail\Db\Message; use OCA\Mail\Exception\ClientException; use OCA\Mail\Exception\ServiceException; use OCA\Mail\Http\AttachmentDownloadResponse; @@ -91,6 +93,9 @@ class MessagesController extends Controller { /** @var ContentSecurityPolicyNonceManager */ private $nonceManager; + /** @var ITrustedSenderService */ + private $trustedSenderService; + /** * @param string $appName * @param IRequest $request @@ -105,6 +110,7 @@ class MessagesController extends Controller { * @param IMimeTypeDetector $mimeTypeDetector * @param IURLGenerator $urlGenerator * @param ContentSecurityPolicyNonceManager $nonceManager + * @param ITrustedSenderService $trustedSenderService */ public function __construct(string $appName, IRequest $request, @@ -118,7 +124,8 @@ class MessagesController extends Controller { IL10N $l10n, IMimeTypeDetector $mimeTypeDetector, IURLGenerator $urlGenerator, - ContentSecurityPolicyNonceManager $nonceManager) { + ContentSecurityPolicyNonceManager $nonceManager, + ITrustedSenderService $trustedSenderService) { parent::__construct($appName, $request); $this->accountService = $accountService; @@ -133,6 +140,7 @@ class MessagesController extends Controller { $this->urlGenerator = $urlGenerator; $this->mailManager = $mailManager; $this->nonceManager = $nonceManager; + $this->trustedSenderService = $trustedSenderService; } /** @@ -149,6 +157,7 @@ class MessagesController extends Controller { * @throws ClientException * @throws ServiceException */ + public function index(int $mailboxId, int $cursor = null, string $filter = null, @@ -246,10 +255,27 @@ class MessagesController extends Controller { $json['accountId'] = $account->getId(); $json['mailboxId'] = $mailbox->getId(); $json['databaseId'] = $message->getId(); + $json['isSenderTrusted'] = $this->isSenderTrusted($message); return new JSONResponse($json); } + private function isSenderTrusted(Message $message): bool { + $from = $message->getFrom(); + $first = $from->first(); + if ($first === null) { + return false; + } + $email = $first->getEmail(); + if ($email === null) { + return false; + } + return $this->trustedSenderService->isTrusted( + $this->currentUserId, + $email + ); + } + /** * @NoAdminRequired * @NoCSRFRequired |