Notify level API on chat

🗃️ Enrich the settings of chat members
🐛 Fix role settings on both chat & realm
This commit is contained in:
2025-06-09 23:32:37 +08:00
parent 0c48694493
commit 9e17be38d8
9 changed files with 3540 additions and 46 deletions

View File

@ -36,11 +36,11 @@ public class Realm : ModelBase, IIdentifiedResource
public string ResourceIdentifier => $"realm/{Id}";
}
public enum RealmMemberRole
public abstract class RealmMemberRole
{
Owner = 100,
Moderator = 50,
Normal = 0
public const int Owner = 100;
public const int Moderator = 50;
public const int Normal = 0;
}
public class RealmMember : ModelBase
@ -50,7 +50,7 @@ public class RealmMember : ModelBase
public Guid AccountId { get; set; }
public Account.Account Account { get; set; } = null!;
public RealmMemberRole Role { get; set; } = RealmMemberRole.Normal;
public int Role { get; set; } = RealmMemberRole.Normal;
public Instant? JoinedAt { get; set; }
public Instant? LeaveAt { get; set; }
}

View File

@ -67,7 +67,7 @@ public class RealmController(
public class RealmMemberRequest
{
[Required] public Guid RelatedUserId { get; set; }
[Required] public RealmMemberRole Role { get; set; }
[Required] public int Role { get; set; }
}
[HttpPost("invites/{slug}")]
@ -516,8 +516,7 @@ public class RealmController(
[HttpPatch("{slug}/members/{memberId:guid}/role")]
[Authorize]
public async Task<ActionResult<RealmMember>> UpdateMemberRole(string slug, Guid memberId,
[FromBody] RealmMemberRole newRole)
public async Task<ActionResult<RealmMember>> UpdateMemberRole(string slug, Guid memberId, [FromBody] int newRole)
{
if (newRole >= RealmMemberRole.Owner) return BadRequest("Unable to set realm member to owner or greater role.");
if (HttpContext.Items["CurrentUser"] is not Account.Account currentUser) return Unauthorized();

View File

@ -19,7 +19,7 @@ public class RealmService(AppDatabase db, NotificationService nty, IStringLocali
);
}
public async Task<bool> IsMemberWithRole(Guid realmId, Guid accountId, params RealmMemberRole[] requiredRoles)
public async Task<bool> IsMemberWithRole(Guid realmId, Guid accountId, params int[] requiredRoles)
{
if (requiredRoles.Length == 0)
return false;