1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-02 00:22:50 -05:00

Refactor email attributes (#1458)

* Add StrictEmailAddress attribute

* Remove duplicate checks, use attributes instead

* Rename EmailAddressListAttribute
This commit is contained in:
Thomas Rittson
2021-07-16 08:01:51 +10:00
committed by GitHub
parent 752aa70924
commit 7abb053914
7 changed files with 43 additions and 23 deletions

View File

@ -0,0 +1,30 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
namespace Bit.Core.Utilities
{
public class StrictEmailAddressAttribute : ValidationAttribute
{
public StrictEmailAddressAttribute()
: base("The {0} field is not a valid e-mail address.")
{}
public override bool IsValid(object value)
{
var emailAddress = value?.ToString();
if (emailAddress == null)
{
return false;
}
var illegalChars = @"[\s<>()]";
if (Regex.IsMatch(emailAddress, illegalChars))
{
return false;
}
return new EmailAddressAttribute().IsValid(emailAddress);
}
}
}

View File

@ -4,11 +4,11 @@ using System.Linq;
namespace Bit.Core.Utilities
{
public class EmailAddressListAttribute : ValidationAttribute
public class StrictEmailAddressListAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var emailAttribute = new EmailAddressAttribute();
var strictEmailAttribute = new StrictEmailAddressAttribute();
var emails = value as IList<string>;
if (!emails?.Any() ?? true)
@ -24,7 +24,7 @@ namespace Bit.Core.Utilities
for (var i = 0; i < emails.Count(); i++)
{
var email = emails.ElementAt(i);
if (!emailAttribute.IsValid(email) || email.Contains(" ") || email.Contains("<"))
if (!strictEmailAttribute.IsValid(email))
{
return new ValidationResult($"Email #{i + 1} is not valid.");
}