diff options
author | Greta <gretadoci@gmail.com> | 2020-12-03 16:03:40 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-03 16:03:40 +0300 |
commit | 783dc3cdab7b03429806402c28f1c25bcdf0fac9 (patch) | |
tree | 423c65e65fd8f8b2bbcc7260bf84db58eea1dbdd /lib/Controller/MessagesController.php | |
parent | 67d49d4bd36ff053b538fc9c6a06d9895d7522d0 (diff) | |
parent | 87d99c0e5629ae4551d3776bef554dd3c448aebf (diff) |
Merge pull request #4103 from nextcloud/feature/remember-trusted-senders
Remember trusted senders
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 b46b4e10d..dacad4b08 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,6 +255,7 @@ class MessagesController extends Controller { $json['accountId'] = $account->getId(); $json['mailboxId'] = $mailbox->getId(); $json['databaseId'] = $message->getId(); + $json['isSenderTrusted'] = $this->isSenderTrusted($message); $response = new JSONResponse($json); @@ -255,6 +265,22 @@ class MessagesController extends Controller { return $response; } + 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 |