add limits to switch members and proxy tag length

This commit is contained in:
spiral
2021-08-25 13:42:08 -04:00
parent 52efb3c70a
commit 603123777d
3 changed files with 6 additions and 0 deletions

View File

@@ -78,6 +78,8 @@ namespace PluralKit.Bot
if (tagToAdd.IsEmpty) throw Errors.EmptyProxyTags(target);
if (target.ProxyTags.Contains(tagToAdd))
throw Errors.ProxyTagAlreadyExists(tagToAdd, target);
if (tagToAdd.ProxyString.Length > Limits.MaxProxyTagLength)
throw new PKError($"Proxy tag too long ({tagToAdd.ProxyString.Length} > {Limits.MaxProxyTagLength} characters).");
if (!await WarnOnConflict(tagToAdd))
throw Errors.GenericCancelled();

View File

@@ -40,6 +40,8 @@ namespace PluralKit.Bot
// Make sure there are no dupes in the list
// We do this by checking if removing duplicate member IDs results in a list of different length
if (members.Select(m => m.Id).Distinct().Count() != members.Count) throw Errors.DuplicateSwitchMembers;
if (members.Count > Limits.MaxSwitchMemberCount)
throw new PKError($"Switch contains too many members ({members.Count} > {Limits.MaxSwitchMemberCount} members).");
// Find the last switch and its members if applicable
await using var conn = await _db.Obtain();