diff --git a/tests/tine20/Tinebase/ApplicationTest.php b/tests/tine20/Tinebase/ApplicationTest.php index 0235c4df927..b2f715cb0a5 100644 --- a/tests/tine20/Tinebase/ApplicationTest.php +++ b/tests/tine20/Tinebase/ApplicationTest.php @@ -552,6 +552,7 @@ public function testGetModelsOfAllApplications() Tinebase_Model_Sms_AdapterConfig::class, Tinebase_Model_Sms_AdapterConfigs::class, Tinebase_Model_Sms_GenericHttpAdapter::class, + Tinebase_Model_Sms_MockAdapter::class, Tinebase_Model_Sms_SendConfig::class, Tinebase_Model_State::class, Tinebase_Model_Tag::class, diff --git a/tine20/Admin/Controller/User.php b/tine20/Admin/Controller/User.php index a7cbd000c4a..25367dae1a5 100644 --- a/tine20/Admin/Controller/User.php +++ b/tine20/Admin/Controller/User.php @@ -201,21 +201,8 @@ public function setAccountPassword(Tinebase_Model_FullUser $_account, $_password return; } - $smsAdapterConfig = $smsAdapterConfigs->getFirstRecord(); - $smsAdapterConfig = $smsAdapterConfig->{Tinebase_Model_Sms_AdapterConfig::FLD_ADAPTER_CONFIG}; - - if (empty($smsAdapterConfig->getHttpClientConfig())) { - $smsAdapterConfig->setHttpClientConfig([ - 'adapter' => ($genericHttpAdapter = new Tinebase_ZendHttpClientAdapter()) - ]); - - $genericHttpAdapter->writeBodyCallBack = function($body) { - $colorGreen = "\033[43m"; - $colorReset = "\033[0m"; - Tinebase_Core::getLogger()->warn($colorGreen . __METHOD__ . '::' . __LINE__ . ' sms request body: ' . $body . $colorReset . PHP_EOL); - }; - $genericHttpAdapter->setResponse(new Zend_Http_Response(200, [])); - } + $smsAdapterClass = $smsAdapterConfigs->getFirstRecord()->{Tinebase_Model_Sms_AdapterConfig::FLD_ADAPTER_CLASS}; + $smsAdapterConfig = $smsAdapterConfigs->getFirstRecord()->{Tinebase_Model_Sms_AdapterConfig::FLD_ADAPTER_CONFIG}; $template = $customTemplate ? rawurldecode($customTemplate) : Tinebase_Config::getInstance()->{Tinebase_Config::SMS} ->{Tinebase_Config::SMS_MESSAGE_TEMPLATES}->get(Tinebase_Config::SMS_NEW_PASSWORD_TEMPLATE); @@ -236,7 +223,7 @@ public function setAccountPassword(Tinebase_Model_FullUser $_account, $_password $smsSendConfig = new Tinebase_Model_Sms_SendConfig([ Tinebase_Model_Sms_SendConfig::FLD_MESSAGE => $message, Tinebase_Model_Sms_SendConfig::FLD_RECIPIENT_NUMBER => $mobilePhoneNumber, - Tinebase_Model_Sms_SendConfig::FLD_ADAPTER_CLASS => Tinebase_Model_Sms_GenericHttpAdapter::class, + Tinebase_Model_Sms_SendConfig::FLD_ADAPTER_CLASS => $smsAdapterClass, Tinebase_Model_Sms_SendConfig::FLD_ADAPTER_CONFIG => $smsAdapterConfig, ]); diff --git a/tine20/Tinebase/Model/Sms/GenericHttpAdapter.php b/tine20/Tinebase/Model/Sms/GenericHttpAdapter.php index 5cd8281b3d6..821e4ca620d 100644 --- a/tine20/Tinebase/Model/Sms/GenericHttpAdapter.php +++ b/tine20/Tinebase/Model/Sms/GenericHttpAdapter.php @@ -58,11 +58,6 @@ class Tinebase_Model_Sms_GenericHttpAdapter extends Tinebase_Record_NewAbstract protected array $_httpClientConfig = []; - public function getHttpClientConfig() - { - return $this->_httpClientConfig; - } - public function setHttpClientConfig(array $_config): void { $this->_httpClientConfig = $_config; diff --git a/tine20/Tinebase/Model/Sms/MockAdapter.php b/tine20/Tinebase/Model/Sms/MockAdapter.php new file mode 100644 index 00000000000..41b83acb26d --- /dev/null +++ b/tine20/Tinebase/Model/Sms/MockAdapter.php @@ -0,0 +1,38 @@ + + */ + +/** + * SMS Generic HTTP Adapter Model + * + * @package Tinebase + * @subpackage Model + */ +class Tinebase_Model_Sms_MockAdapter extends Tinebase_Model_Sms_GenericHttpAdapter +{ + const MODEL_NAME_PART = 'Sms_MockAdapter'; + + public function send(Tinebase_Model_Sms_SendConfig $config): bool + { + // @TODO make me working + $this->setHttpClientConfig([ + 'adapter' => ($client = new Tinebase_ZendHttpClientAdapter()) + ]); + + $client->writeBodyCallBack = function($body) { + $colorGreen = "\033[43m"; + $colorReset = "\033[0m"; + Tinebase_Core::getLogger()->warn($colorGreen . __METHOD__ . '::' . __LINE__ . ' sms request body: ' . $body . $colorReset . PHP_EOL); + }; + $client->setResponse(new Zend_Http_Response(200, [])); + + return true; + } +} \ No newline at end of file