Reverting changes, validate email only if it was provided

This commit is contained in:
rockstardev 2025-03-05 22:14:06 -06:00
parent 18852af241
commit 1da2cedffd
No known key found for this signature in database
GPG key ID: 4F224698945A6EE7
4 changed files with 9 additions and 9 deletions

View file

@ -50,11 +50,11 @@ namespace BTCPayServer.Controllers.GreenField
[HttpPut("~/api/v1/server/email")]
public async Task<IActionResult> ServerEmailSettings(ServerEmailSettingsData request)
{
if (!MailboxAddressValidator.IsMailboxAddress(request.From))
{
if (!string.IsNullOrWhiteSpace(request.From) && !MailboxAddressValidator.IsMailboxAddress(request.From))
ModelState.AddModelError(nameof(request.From), "Invalid email address");
if (!ModelState.IsValid)
return this.CreateValidationError(ModelState);
}
if (_policiesSettings.DisableStoresToUseServerEmailSettings == request.EnableStoresToUseServerEmailSettings)
{

View file

@ -70,11 +70,11 @@ namespace BTCPayServer.Controllers.GreenField
[HttpPut("~/api/v1/stores/{storeId}/email")]
public async Task<IActionResult> UpdateStoreEmailSettings(string storeId, EmailSettingsData request)
{
if (!MailboxAddressValidator.IsMailboxAddress(request.From))
{
if (!string.IsNullOrWhiteSpace(request.From) && !MailboxAddressValidator.IsMailboxAddress(request.From))
ModelState.AddModelError(nameof(request.From), "Invalid email address");
if (!ModelState.IsValid)
return this.CreateValidationError(ModelState);
}
var store = HttpContext.GetStoreData();
var blob = store.GetStoreBlob();

View file

@ -1256,8 +1256,8 @@ namespace BTCPayServer.Controllers
return RedirectToAction(nameof(Emails));
}
// save
if (!MailboxAddressValidator.IsMailboxAddress(model.Settings.From))
// save if user provided valid email; this will also clear settings if no model.Settings.From
if (model.Settings.From is not null && !MailboxAddressValidator.IsMailboxAddress(model.Settings.From))
{
ModelState.AddModelError("Settings.From", StringLocalizer["Invalid email"]);
return View(model);

View file

@ -209,7 +209,7 @@ public partial class UIStoresController
if (model.IsCustomSMTP)
{
model.Settings.Validate("Settings.", ModelState);
if (!MailboxAddressValidator.IsMailboxAddress(model.Settings.From))
if (model.Settings.From is not null && !MailboxAddressValidator.IsMailboxAddress(model.Settings.From))
{
ModelState.AddModelError("Settings.From", StringLocalizer["Invalid email"]);
}