[backend/core] Stricter local user username validation
This commit is contained in:
parent
d786d8976d
commit
b69f92dbdc
1 changed files with 3 additions and 2 deletions
|
@ -1,6 +1,7 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using AsyncKeyedLock;
|
using AsyncKeyedLock;
|
||||||
using EntityFramework.Exceptions.Common;
|
using EntityFramework.Exceptions.Common;
|
||||||
using Iceshrimp.Backend.Core.Configuration;
|
using Iceshrimp.Backend.Core.Configuration;
|
||||||
|
@ -377,8 +378,8 @@ public class UserService(
|
||||||
if (security.Value.Registrations == Enums.Registrations.Invite &&
|
if (security.Value.Registrations == Enums.Registrations.Invite &&
|
||||||
!await db.RegistrationInvites.AnyAsync(p => p.Code == invite))
|
!await db.RegistrationInvites.AnyAsync(p => p.Code == invite))
|
||||||
throw new GracefulException(HttpStatusCode.Forbidden, "The specified invite code is invalid");
|
throw new GracefulException(HttpStatusCode.Forbidden, "The specified invite code is invalid");
|
||||||
if (username.Contains('.'))
|
if (!Regex.IsMatch(username, @"^\w+$"))
|
||||||
throw new GracefulException(HttpStatusCode.BadRequest, "Username must not contain the dot character");
|
throw new GracefulException(HttpStatusCode.BadRequest, "Username must only contain letters");
|
||||||
if (Constants.SystemUsers.Contains(username.ToLowerInvariant()))
|
if (Constants.SystemUsers.Contains(username.ToLowerInvariant()))
|
||||||
throw new GracefulException(HttpStatusCode.BadRequest, "Username must not be a system user");
|
throw new GracefulException(HttpStatusCode.BadRequest, "Username must not be a system user");
|
||||||
if (await db.Users.AnyAsync(p => p.IsLocalUser && p.UsernameLower == username.ToLowerInvariant()))
|
if (await db.Users.AnyAsync(p => p.IsLocalUser && p.UsernameLower == username.ToLowerInvariant()))
|
||||||
|
|
Loading…
Add table
Reference in a new issue