From 4326a134c6d0de008c6715a76c67862dc31f2f5d Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Thu, 17 Jul 2025 01:47:23 +0200 Subject: [PATCH] some logging --- .../UserRequirementHandler.cs | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/MareSynchronosServer/MareSynchronosShared/RequirementHandlers/UserRequirementHandler.cs b/MareSynchronosServer/MareSynchronosShared/RequirementHandlers/UserRequirementHandler.cs index 5cc38e5..a882763 100644 --- a/MareSynchronosServer/MareSynchronosShared/RequirementHandlers/UserRequirementHandler.cs +++ b/MareSynchronosServer/MareSynchronosShared/RequirementHandlers/UserRequirementHandler.cs @@ -26,19 +26,34 @@ public class UserRequirementHandler : AuthorizationHandler string.Equals(g.Type, MareClaimTypes.Uid, StringComparison.Ordinal))?.Value; - if (uid == null) context.Fail(); + if (uid == null) + { + context.Fail(); + _logger.LogWarning("No user UID found in claims"); + return; + } if ((requirement.Requirements & UserRequirements.Identified) is UserRequirements.Identified) { var ident = await _redis.GetAsync("UID:" + uid).ConfigureAwait(false); - if (ident == RedisValue.EmptyString) context.Fail(); + if (ident == RedisValue.EmptyString) + { + context.Fail(); + _logger.LogWarning("User {uid} not online", uid); + return; + } } if ((requirement.Requirements & UserRequirements.Administrator) is UserRequirements.Administrator) { using var dbContext = await _dbContextFactory.CreateDbContextAsync().ConfigureAwait(false); var user = await dbContext.Users.AsNoTracking().SingleOrDefaultAsync(b => b.UID == uid).ConfigureAwait(false); - if (user == null || !user.IsAdmin) context.Fail(); + if (user == null || !user.IsAdmin) + { + context.Fail(); + _logger.LogWarning("Admin request for {uid} unauthenticated", uid); + return; + } _logger.LogInformation("Admin {uid} authenticated", uid); } @@ -46,7 +61,12 @@ public class UserRequirementHandler : AuthorizationHandler b.UID == uid).ConfigureAwait(false); - if (user == null || !user.IsAdmin && !user.IsModerator) context.Fail(); + if (user == null || !user.IsAdmin && !user.IsModerator) + { + context.Fail(); + _logger.LogWarning("Admin/Moderator for {uid} unauthenticated", uid); + return; + } _logger.LogInformation("Admin/Moderator {uid} authenticated", uid); }