diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-01-27 19:10:06 +0300 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-02-03 15:15:11 +0300 |
commit | 9647c19d819818285a65e59ea0a70d3b7d9276d6 (patch) | |
tree | d7dd9230fbd35ecb3db612624d248b032ccc3645 /lib/Listener | |
parent | e0658df26d66f62f2eaf433603a535d7989d0e7e (diff) |
Only collect addresses if user hasn't opt'ed out
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/Listener')
-rw-r--r-- | lib/Listener/AddressCollectionListener.php | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/Listener/AddressCollectionListener.php b/lib/Listener/AddressCollectionListener.php index c2ae7eee9..2f227157d 100644 --- a/lib/Listener/AddressCollectionListener.php +++ b/lib/Listener/AddressCollectionListener.php @@ -23,6 +23,7 @@ namespace OCA\Mail\Listener; +use OCA\Mail\Contracts\IUserPreferences; use OCA\Mail\Events\MessageSentEvent; use OCA\Mail\Service\AutoCompletion\AddressCollector; use OCP\EventDispatcher\Event; @@ -32,22 +33,31 @@ use Throwable; class AddressCollectionListener implements IEventListener { + /** @var IUserPreferences */ + private $preferences; + /** @var AddressCollector */ private $collector; /** @var ILogger */ private $logger; - public function __construct(AddressCollector $collector, + public function __construct(IUserPreferences $preferences, + AddressCollector $collector, ILogger $logger) { $this->collector = $collector; $this->logger = $logger; + $this->preferences = $preferences; } public function handle(Event $event): void { if (!($event instanceof MessageSentEvent)) { return; } + if ($this->preferences->getPreference('collect-data', 'true') !== 'true') { + $this->logger->debug('Not collecting email addresses because the user opted out'); + return; + } // Non-essential feature, hence we catch all possible errors try { |