feat(backend): limit total members per user

This commit is contained in:
sam 2024-09-30 21:44:41 +02:00
parent 80ac16694c
commit 4002893323
Signed by: sam
GPG key ID: B4EF20DDE721CAA1
3 changed files with 21 additions and 4 deletions

View file

@ -41,6 +41,8 @@ public class MembersController(
return Ok(memberRenderer.RenderMember(member, CurrentToken));
}
public const int MaxMemberCount = 500;
[HttpPost("/api/v2/users/@me/members")]
[ProducesResponseType<MemberRendererService.MemberResponse>(StatusCodes.Status200OK)]
[Authorize("member.create")]
@ -58,6 +60,10 @@ public class MembersController(
.. ValidationUtils.ValidateLinks(req.Links)
]);
var memberCount = await db.Members.CountAsync(m => m.UserId == CurrentUser.Id, ct);
if (memberCount >= MaxMemberCount)
throw new ApiError.BadRequest("Maximum number of members reached");
var member = new Member
{
Id = snowflakeGenerator.GenerateSnowflake(),