Improve email settings validation and UX (#3891)

This commit is contained in:
Nicolas Dorier
2022-06-23 13:41:52 +09:00
committed by GitHub
parent c2d72e71aa
commit c89f7aaaed
26 changed files with 161 additions and 93 deletions

View File

@@ -0,0 +1,25 @@
using System.ComponentModel.DataAnnotations;
namespace BTCPayServer.Validation
{
/// <summary>
/// Validate address in the format "Firstname Lastname <blah@example.com>" See rfc822
/// </summary>
public class MailboxAddressAttribute : ValidationAttribute
{
public MailboxAddressAttribute()
{
ErrorMessage = ErrorMessageConst;
}
public const string ErrorMessageConst = "Invalid mailbox address. Some valid examples are: 'test@example.com' or 'Firstname Lastname <test@example.com>'";
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value is null)
return ValidationResult.Success;
var str = value as string;
if (MailboxAddressValidator.IsMailboxAddress(str))
return ValidationResult.Success;
return new ValidationResult(ErrorMessage);
}
}
}