diff --git a/src/BirdsiteLive.Common/Regexes/UserRegex.cs b/src/BirdsiteLive.Common/Regexes/UserRegex.cs new file mode 100644 index 0000000..b3da74a --- /dev/null +++ b/src/BirdsiteLive.Common/Regexes/UserRegex.cs @@ -0,0 +1,9 @@ +using System.Text.RegularExpressions; + +namespace BirdsiteLive.Common.Regexes +{ + public class UserRegex + { + public static readonly Regex TwitterAccountRegex = new Regex(@"^[a-zA-Z0-9_]+$"); + } +} \ No newline at end of file diff --git a/src/BirdsiteLive/Controllers/UsersController.cs b/src/BirdsiteLive/Controllers/UsersController.cs index a22ae73..486d9b6 100644 --- a/src/BirdsiteLive/Controllers/UsersController.cs +++ b/src/BirdsiteLive/Controllers/UsersController.cs @@ -9,6 +9,7 @@ using System.Threading; using System.Threading.Tasks; using BirdsiteLive.ActivityPub; using BirdsiteLive.ActivityPub.Models; +using BirdsiteLive.Common.Regexes; using BirdsiteLive.Common.Settings; using BirdsiteLive.Domain; using BirdsiteLive.Models; @@ -28,7 +29,6 @@ namespace BirdsiteLive.Controllers private readonly IUserService _userService; private readonly IStatusService _statusService; private readonly InstanceSettings _instanceSettings; - private readonly Regex _twitterAccountRegex = new Regex(@"^[a-zA-Z0-9_]+$"); #region Ctor public UsersController(ITwitterUserService twitterUserService, IUserService userService, IStatusService statusService, InstanceSettings instanceSettings, ITwitterTweetsService twitterTweetService) @@ -62,7 +62,7 @@ namespace BirdsiteLive.Controllers // Ensure valid username // https://help.twitter.com/en/managing-your-account/twitter-username-rules TwitterUser user = null; - if (!string.IsNullOrWhiteSpace(id) && _twitterAccountRegex.IsMatch(id) && id.Length <= 15) + if (!string.IsNullOrWhiteSpace(id) && UserRegex.TwitterAccountRegex.IsMatch(id) && id.Length <= 15) user = _twitterUserService.GetUser(id); var acceptHeaders = Request.Headers["Accept"]; diff --git a/src/BirdsiteLive/Controllers/WellKnownController.cs b/src/BirdsiteLive/Controllers/WellKnownController.cs index 3f060a7..f974665 100644 --- a/src/BirdsiteLive/Controllers/WellKnownController.cs +++ b/src/BirdsiteLive/Controllers/WellKnownController.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; using BirdsiteLive.ActivityPub.Converters; +using BirdsiteLive.Common.Regexes; using BirdsiteLive.Common.Settings; using BirdsiteLive.DAL.Contracts; using BirdsiteLive.Models; @@ -20,7 +21,6 @@ namespace BirdsiteLive.Controllers private readonly ITwitterUserService _twitterUserService; private readonly ITwitterUserDal _twitterUserDal; private readonly InstanceSettings _settings; - private readonly Regex _twitterAccountRegex = new Regex(@"^[a-zA-Z0-9_]+$"); #region Ctor public WellKnownController(InstanceSettings settings, ITwitterUserService twitterUserService, ITwitterUserDal twitterUserDal) @@ -164,7 +164,7 @@ namespace BirdsiteLive.Controllers // Ensure valid username // https://help.twitter.com/en/managing-your-account/twitter-username-rules - if (string.IsNullOrWhiteSpace(name) || !_twitterAccountRegex.IsMatch(name) || name.Length > 15 ) + if (string.IsNullOrWhiteSpace(name) || !UserRegex.TwitterAccountRegex.IsMatch(name) || name.Length > 15 ) return NotFound(); if (!string.IsNullOrWhiteSpace(domain) && domain != _settings.Domain)