Skip to content

Commit

Permalink
Merge pull request #49891 from nextcloud/refactor/settings/mail-setti…
Browse files Browse the repository at this point in the history
…ngs-parameters
  • Loading branch information
skjnldsv authored Jan 7, 2025
2 parents 1b0cb4a + 98275fb commit cd236c7
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 25 deletions.
45 changes: 24 additions & 21 deletions apps/settings/lib/Controller/MailSettingsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,34 +44,37 @@ public function __construct(

/**
* 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;
}
Expand Down
8 changes: 4 additions & 4 deletions apps/settings/tests/Controller/MailSettingsControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public function testSetMailSettings(): void {
'mail_smtphost' => 'mx.nextcloud.org',
'mail_smtpauth' => 1,
'mail_smtpport' => '25',
'mail_sendmailmode' => null,
'mail_sendmailmode' => 'smtp',
]],
[[
'mail_domain' => 'nextcloud.com',
Expand All @@ -82,7 +82,7 @@ public function testSetMailSettings(): void {
'mail_smtpport' => '25',
'mail_smtpname' => null,
'mail_smtppassword' => null,
'mail_sendmailmode' => null,
'mail_sendmailmode' => 'smtp',
]]
);

Expand All @@ -95,7 +95,7 @@ public function testSetMailSettings(): void {
'mx.nextcloud.org',
1,
'25',
null
'smtp'
);
$this->assertSame(Http::STATUS_OK, $response->getStatus());

Expand All @@ -108,7 +108,7 @@ public function testSetMailSettings(): void {
'mx.nextcloud.org',
0,
'25',
null
'smtp'
);
$this->assertSame(Http::STATUS_OK, $response->getStatus());
}
Expand Down

0 comments on commit cd236c7

Please sign in to comment.