fix: check member/group limits before creating

This commit is contained in:
spiral
2021-11-03 02:42:37 -04:00
parent 29b28ba742
commit e1a5310a3a
3 changed files with 15 additions and 2 deletions

View File

@@ -40,6 +40,13 @@ namespace PluralKit.API
[HttpPost("members")]
public async Task<IActionResult> MemberCreate([FromBody] JObject data)
{
var system = await ResolveSystem("@me");
var memberCount = await _repo.GetSystemMemberCount(system.Id);
var memberLimit = system.MemberLimitOverride ?? Limits.MaxMemberCount;
if (memberCount >= memberLimit)
throw Errors.MemberLimitReached;
var patch = MemberPatch.FromJSON(data);
patch.AssertIsValid();
if (!patch.Name.IsPresent)
@@ -47,8 +54,6 @@ namespace PluralKit.API
if (patch.Errors.Count > 0)
throw new ModelParseError(patch.Errors);
var system = await ResolveSystem("@me");
using var conn = await _db.Obtain();
using var tx = await conn.BeginTransactionAsync();