diff options
author | provokateurin <kate@provokateurin.de> | 2024-12-17 09:49:49 +0100 |
---|---|---|
committer | provokateurin <kate@provokateurin.de> | 2025-01-06 08:40:52 +0100 |
commit | 98275fb8061f55d878649e3529ba7ebb1bcd19be (patch) | |
tree | bfe504e5654db181dc06a363966015577b637af7 | |
parent | 92acfefb3fd4f51c1f07c0aa17b272330a8fbadc (diff) | |
download | nextcloud-server-refactor/settings/mail-settings-parameters.tar.gz nextcloud-server-refactor/settings/mail-settings-parameters.zip |
refactor(settings): Use parameters explicitly when setting mail settingsrefactor/settings/mail-settings-parameters
Signed-off-by: provokateurin <kate@provokateurin.de>
-rw-r--r-- | apps/settings/lib/Controller/MailSettingsController.php | 45 | ||||
-rw-r--r-- | apps/settings/tests/Controller/MailSettingsControllerTest.php | 8 |
2 files changed, 28 insertions, 25 deletions
diff --git a/apps/settings/lib/Controller/MailSettingsController.php b/apps/settings/lib/Controller/MailSettingsController.php index ca037f409b3..13871bc13b6 100644 --- a/apps/settings/lib/Controller/MailSettingsController.php +++ b/apps/settings/lib/Controller/MailSettingsController.php @@ -44,34 +44,37 @@ class MailSettingsController extends Controller { /** * Sets the email settings - * - * @param string $mail_domain - * @param string $mail_from_address - * @param string $mail_smtpmode - * @param string $mail_smtpsecure - * @param string $mail_smtphost - * @param int $mail_smtpauth - * @param string $mail_smtpport - * @return DataResponse */ #[AuthorizedAdminSetting(settings: Overview::class)] #[PasswordConfirmationRequired] - public function setMailSettings($mail_domain, - $mail_from_address, - $mail_smtpmode, - $mail_smtpsecure, - $mail_smtphost, - $mail_smtpauth, - $mail_smtpport, - $mail_sendmailmode) { - $params = get_defined_vars(); - $configs = []; - foreach ($params as $key => $value) { + public function setMailSettings( + string $mail_domain, + string $mail_from_address, + string $mail_smtpmode, + string $mail_smtpsecure, + string $mail_smtphost, + ?string $mail_smtpauth, + string $mail_smtpport, + string $mail_sendmailmode, + ): DataResponse { + $mail_smtpauth = $mail_smtpauth == '1'; + + $configs = [ + 'mail_domain' => $mail_domain, + 'mail_from_address' => $mail_from_address, + 'mail_smtpmode' => $mail_smtpmode, + 'mail_smtpsecure' => $mail_smtpsecure, + 'mail_smtphost' => $mail_smtphost, + 'mail_smtpauth' => $mail_smtpauth, + 'mail_smtpport' => $mail_smtpport, + 'mail_sendmailmode' => $mail_sendmailmode, + ]; + foreach ($configs as $key => $value) { $configs[$key] = empty($value) ? null : $value; } // Delete passwords from config in case no auth is specified - if ($params['mail_smtpauth'] !== 1) { + if (!$mail_smtpauth) { $configs['mail_smtpname'] = null; $configs['mail_smtppassword'] = null; } diff --git a/apps/settings/tests/Controller/MailSettingsControllerTest.php b/apps/settings/tests/Controller/MailSettingsControllerTest.php index d4d1e319a8e..2a0028738dd 100644 --- a/apps/settings/tests/Controller/MailSettingsControllerTest.php +++ b/apps/settings/tests/Controller/MailSettingsControllerTest.php @@ -70,7 +70,7 @@ class MailSettingsControllerTest extends \Test\TestCase { 'mail_smtphost' => 'mx.nextcloud.org', 'mail_smtpauth' => 1, 'mail_smtpport' => '25', - 'mail_sendmailmode' => null, + 'mail_sendmailmode' => 'smtp', ]], [[ 'mail_domain' => 'nextcloud.com', @@ -82,7 +82,7 @@ class MailSettingsControllerTest extends \Test\TestCase { 'mail_smtpport' => '25', 'mail_smtpname' => null, 'mail_smtppassword' => null, - 'mail_sendmailmode' => null, + 'mail_sendmailmode' => 'smtp', ]] ); @@ -95,7 +95,7 @@ class MailSettingsControllerTest extends \Test\TestCase { 'mx.nextcloud.org', 1, '25', - null + 'smtp' ); $this->assertSame(Http::STATUS_OK, $response->getStatus()); @@ -108,7 +108,7 @@ class MailSettingsControllerTest extends \Test\TestCase { 'mx.nextcloud.org', 0, '25', - null + 'smtp' ); $this->assertSame(Http::STATUS_OK, $response->getStatus()); } |