diff --git a/dev/Stores/User/App.js b/dev/Stores/User/App.js index 9825c8951..0a8723c40 100644 --- a/dev/Stores/User/App.js +++ b/dev/Stores/User/App.js @@ -4,7 +4,7 @@ import { ThemeStore } from 'Stores/Theme'; import { arePopupsVisible } from 'Knoin/Knoin'; export const AppUserStore = { - allowContacts: () => !!SettingsGet('contactsAllowed') + allowContacts: () => !!SettingsGet('contactsAllowed') && !!SettingsGet('contactsExternal') }; addObservablesTo(AppUserStore, { diff --git a/plugins/kolab/KolabAddressBook.php b/plugins/kolab/KolabAddressBook.php index 8c7df9316..1e01b216a 100644 --- a/plugins/kolab/KolabAddressBook.php +++ b/plugins/kolab/KolabAddressBook.php @@ -99,6 +99,11 @@ class KolabAddressBook implements \RainLoop\Providers\AddressBook\AddressBookInt return true; } + public function IsExternal(): bool + { + return false; + } + public function SetEmail(string $sEmail) : bool { return true; diff --git a/plugins/nextcloud/NextcloudAddressBook.php b/plugins/nextcloud/NextcloudAddressBook.php index c301b8237..4ba57fc5b 100644 --- a/plugins/nextcloud/NextcloudAddressBook.php +++ b/plugins/nextcloud/NextcloudAddressBook.php @@ -33,6 +33,11 @@ class NextcloudAddressBook implements \RainLoop\Providers\AddressBook\AddressBoo return true; } + public function IsExternal(): bool + { + return true; + } + public function SetEmail(string $sEmail) : bool { return true; } diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php index eb7356db5..3ebb1de27 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php @@ -678,6 +678,7 @@ class Actions 'accountSignMe' => isset($_COOKIE[self::AUTH_SIGN_ME_TOKEN_KEY]), 'contactsAllowed' => $this->AddressBookProvider($oAccount)->IsActive(), + 'contactsExternal' => $this->AddressBookProvider($oAccount)->IsExternal(), 'ViewHTML' => (bool) $oConfig->Get('defaults', 'view_html', true), 'ViewImages' => $oConfig->Get('defaults', 'view_images', 'ask'), diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Accounts.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Accounts.php index 7316ddc2e..7c9724e7a 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Accounts.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Accounts.php @@ -202,6 +202,7 @@ trait Accounts 'accountHash' => $oAccount->Hash(), 'mainEmail' => \RainLoop\Api::Actions()->getMainAccountFromToken()->Email(), 'contactsAllowed' => $this->AddressBookProvider($oAccount)->IsActive(), + 'contactsExternal' => $this->AddressBookProvider($oAccount)->IsExternal(), 'HideUnsubscribed' => false, 'UseThreads' => (bool) $oConfig->Get('defaults', 'mail_use_threads', false), 'ReplySameFolder' => (bool) $oConfig->Get('defaults', 'mail_reply_same_folder', false), diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook.php index affaecd99..332836449 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook.php @@ -25,6 +25,11 @@ class AddressBook extends AbstractProvider return $this->oDriver && $this->oDriver->IsSupported(); } + public function IsExternal() : bool + { + return $this->IsActive() ? $this->oDriver->IsExternal() : false; + } + public function Sync() : bool { return $this->IsActive() ? $this->oDriver->Sync() : false; diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/AddressBookInterface.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/AddressBookInterface.php index 564a0d48b..50d773244 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/AddressBookInterface.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/AddressBookInterface.php @@ -6,6 +6,8 @@ interface AddressBookInterface { public function IsSupported() : bool; + public function IsExternal() : bool; + public function SetEmail(string $sEmail) : bool; public function Sync() : bool; diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php index fbf5aeebc..76af282f3 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php @@ -76,6 +76,11 @@ class PdoAddressBook return \is_array($aDrivers) && \in_array($this->settings->driver, $aDrivers); } + public function IsExternal(): bool + { + return false; + } + public function SetEmail(string $sEmail) : bool { $this->iUserID = $this->getUserId($sEmail);