diff --git a/tests/tine20/Admin/Frontend/Json/UserTest.php b/tests/tine20/Admin/Frontend/Json/UserTest.php index eb945ea14a..3be2d50625 100644 --- a/tests/tine20/Admin/Frontend/Json/UserTest.php +++ b/tests/tine20/Admin/Frontend/Json/UserTest.php @@ -583,7 +583,8 @@ public function testExternalDomainInUserAccountCreate() $userArray = $user->toArray(); $updatedUser = $this->_json->saveUser($userArray); self::assertEquals($userArray['accountEmailAddress'], $updatedUser['accountEmailAddress']); - self::assertFalse(isset($updatedUser['xprops']['emailUserIdImap']), print_r($updatedUser['xprops'], true)); + self::assertFalse(isset($updatedUser['xprops']['emailUserIdImap']), + 'user should no longer have email xprops:' . print_r($updatedUser['xprops'], true)); } /** diff --git a/tine20/Tinebase/EmailUser.php b/tine20/Tinebase/EmailUser.php index f661cd20e6..eadb148745 100644 --- a/tine20/Tinebase/EmailUser.php +++ b/tine20/Tinebase/EmailUser.php @@ -494,7 +494,14 @@ public static function checkDomain( $_throwException = false, $_allowedDomains = null, $_includeAdditional = false - ) { + ): bool + { + if (!Tinebase_EmailUser::manages(Tinebase_Config::IMAP) || + !Tinebase_Config::getInstance()->{Tinebase_Config::IMAP}->{Tinebase_Config::IMAP_USE_SYSTEM_ACCOUNT} + ) { + return true; + } + $result = true; $allowedDomains = $_allowedDomains ?: self::getAllowedDomains(null, $_includeAdditional); diff --git a/tine20/Tinebase/User/Sql.php b/tine20/Tinebase/User/Sql.php index c9d21fb7ed..f1749134ef 100644 --- a/tine20/Tinebase/User/Sql.php +++ b/tine20/Tinebase/User/Sql.php @@ -1081,7 +1081,8 @@ public function updateUserInSqlBackend(Tinebase_Model_FullUser $_user, bool $_ge } if (Tinebase_EmailUser::manages(Tinebase_Config::IMAP) - && ! Tinebase_Config::getInstance()->get(Tinebase_Config::IMAP)->allowExternalEmail) { + && ! Tinebase_Config::getInstance()->get(Tinebase_Config::IMAP)->allowExternalEmail + ) { Tinebase_EmailUser::checkDomain($_user->accountEmailAddress, true, null, @@ -1205,8 +1206,13 @@ public function addPluginUser($addedUser, $newUserProperties) */ public function addUserInSqlBackend(Tinebase_Model_FullUser $_user) { - Tinebase_Config::getInstance()->get(Tinebase_Config::IMAP)->allowExternalEmail - || Tinebase_EmailUser::checkDomain($_user->accountEmailAddress, true, null, true); + if (Tinebase_EmailUser::manages(Tinebase_Config::IMAP) + && ! Tinebase_Config::getInstance()->get(Tinebase_Config::IMAP)->allowExternalEmail) { + Tinebase_EmailUser::checkDomain($_user->accountEmailAddress, + true, + null, + true); + } $_user->isValid(TRUE);