From 185ab13ec908ba6ce045718e14f519ce1499399a Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 25 May 2025 12:07:17 +0800 Subject: [PATCH] :bug: Trying to fix permission that inherits from groups. --- DysonNetwork.Sphere/Chat/RealtimeCallController.cs | 2 +- .../Permission/PermissionService.cs | 14 +++++++------- DysonNetwork.Sphere/appsettings.json | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/DysonNetwork.Sphere/Chat/RealtimeCallController.cs b/DysonNetwork.Sphere/Chat/RealtimeCallController.cs index ff72ad6..5a335cb 100644 --- a/DysonNetwork.Sphere/Chat/RealtimeCallController.cs +++ b/DysonNetwork.Sphere/Chat/RealtimeCallController.cs @@ -19,7 +19,7 @@ public class RealtimeCallController(IConfiguration configuration, AppDatabase db [HttpGet("{roomId:guid}/join")] [Authorize] - public async Task JoinCall(Guid roomId) + public async Task> JoinCall(Guid roomId) { if (HttpContext.Items["CurrentUser"] is not Account.Account currentUser) return Unauthorized(); diff --git a/DysonNetwork.Sphere/Permission/PermissionService.cs b/DysonNetwork.Sphere/Permission/PermissionService.cs index 45ba123..2c5be15 100644 --- a/DysonNetwork.Sphere/Permission/PermissionService.cs +++ b/DysonNetwork.Sphere/Permission/PermissionService.cs @@ -34,7 +34,7 @@ public class PermissionService( public async Task GetPermissionAsync(string actor, string area, string key) { var cacheKey = _GetPermissionCacheKey(actor, area, key); - + var cachedValue = await cache.GetAsync(cacheKey); if (cachedValue != null) { @@ -43,19 +43,19 @@ public class PermissionService( var now = SystemClock.Instance.GetCurrentInstant(); var groupsKey = _GetGroupsCacheKey(actor); - + var groupsId = await cache.GetAsync>(groupsKey); if (groupsId == null) { groupsId = await db.PermissionGroupMembers - .Where(n => n.Actor == actor) + .Where(n => n.Actor == "user:" + actor) .Where(n => n.ExpiredAt == null || n.ExpiredAt < now) .Where(n => n.AffectedAt == null || n.AffectedAt >= now) .Select(e => e.GroupId) .ToListAsync(); - - await cache.SetWithGroupsAsync(groupsKey, groupsId, - new[] { _GetPermissionGroupKey(actor) }, + + await cache.SetWithGroupsAsync(groupsKey, groupsId, + [_GetPermissionGroupKey(actor)], CacheExpiration); } @@ -71,7 +71,7 @@ public class PermissionService( await cache.SetWithGroupsAsync(cacheKey, result, [_GetPermissionGroupKey(actor)], CacheExpiration); - + return result; } diff --git a/DysonNetwork.Sphere/appsettings.json b/DysonNetwork.Sphere/appsettings.json index c402383..242c8b2 100644 --- a/DysonNetwork.Sphere/appsettings.json +++ b/DysonNetwork.Sphere/appsettings.json @@ -75,9 +75,9 @@ "SubjectPrefix": "Solar Network" }, "RealtimeChat": { - "Endpoint": "", - "ApiKey": "", - "ApiSecret": "" + "Endpoint": "https://solar-network-im44o8gq.livekit.cloud", + "ApiKey": "APIs6TiL8wj3A4j", + "ApiSecret": "SffxRneIwTnlHPtEf3zicmmv3LUEl7xXael4PvWZrEhE" }, "GeoIp": { "DatabasePath": "./Keys/GeoLite2-City.mmdb"