From 81030f468b93d76b624d4c4560a812eba75c3e01 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Sat, 11 Mar 2023 14:03:24 -0500 Subject: [PATCH] improve user profile error logging for external login --- ...taneSiteAuthenticationBuilderExtensions.cs | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs b/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs index 95faf3ef..529bf16e 100644 --- a/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs +++ b/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs @@ -439,24 +439,39 @@ namespace Oqtane.Extensions if (mapping.Contains(":")) { var claim = claimsPrincipal.Claims.FirstOrDefault(item => item.Type == mapping.Split(":")[0]); - if (claim != null && !string.IsNullOrEmpty(claim.Value)) + if (claim != null) { var profile = profiles.FirstOrDefault(item => item.Name == mapping.Split(":")[1]); if (profile != null) { - var setting = _settings.GetSetting(EntityNames.User, user.UserId, profile.Name); - if (setting != null) + if (!string.IsNullOrEmpty(claim.Value)) { - setting.SettingValue = claim.Value; - _settings.UpdateSetting(setting); - } - else - { - setting = new Setting { EntityName = EntityNames.User, EntityId = user.UserId, SettingName = profile.Name, SettingValue = claim.Value, IsPrivate = profile.IsPrivate }; - _settings.AddSetting(setting); + var setting = _settings.GetSetting(EntityNames.User, user.UserId, profile.Name); + if (setting != null) + { + setting.SettingValue = claim.Value; + _settings.UpdateSetting(setting); + } + else + { + setting = new Setting { EntityName = EntityNames.User, EntityId = user.UserId, SettingName = profile.Name, SettingValue = claim.Value, IsPrivate = profile.IsPrivate }; + _settings.AddSetting(setting); + } } } + else + { + _logger.Log(LogLevel.Error, "ExternalLogin", Enums.LogFunction.Security, "The User Profile {ProfileName} Does Not Exist For The Site. Please Verify Your User Profile Definitions.", mapping.Split(":")[1]); + } } + else + { + _logger.Log(LogLevel.Error, "ExternalLogin", Enums.LogFunction.Security, "The User Profile Claim {ClaimType} Does Not Exist. The Valid Claims Are {Claims}.", mapping.Split(":")[0], claims); + } + } + else + { + _logger.Log(LogLevel.Error, "ExternalLogin", Enums.LogFunction.Security, "The User Profile Claim Mapping {Mapping} Is Not Specified Correctly. It Should Be In The Format 'ClaimType:ProfileName'.", mapping); } } }