Merge pull request #4029 from zyhfish/task/fix-issue-4028

Fix #4028: check whether the user info is null.
This commit is contained in:
Shaun Walker 2024-03-21 07:56:49 -04:00 committed by GitHub
commit 1cdedb89f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -547,11 +547,14 @@
if (PageState.Runtime == Shared.Runtime.Hybrid) if (PageState.Runtime == Shared.Runtime.Hybrid)
{ {
// hybrid apps utilize an interactive logout if (PageState.User != null)
await UserService.LogoutUserAsync(PageState.User); {
var authstateprovider = (IdentityAuthenticationStateProvider)ServiceProvider.GetService(typeof(IdentityAuthenticationStateProvider)); // hybrid apps utilize an interactive logout
authstateprovider.NotifyAuthenticationChanged(); await UserService.LogoutUserAsync(PageState.User);
NavigationManager.NavigateTo(url, true); var authstateprovider = (IdentityAuthenticationStateProvider)ServiceProvider.GetService(typeof(IdentityAuthenticationStateProvider));
authstateprovider.NotifyAuthenticationChanged();
NavigationManager.NavigateTo(url, true);
}
} }
else else
{ {
@ -564,8 +567,8 @@
private void LoadSettingsAsync() private void LoadSettingsAsync()
{ {
_category = SettingService.GetSetting(PageState.User.Settings, settingCategory, "Common"); _category = SettingService.GetSetting(PageState.User?.Settings, settingCategory, "Common");
var pane = SettingService.GetSetting(PageState.User.Settings, settingPane, ""); var pane = SettingService.GetSetting(PageState.User?.Settings, settingPane, "");
if (PageState.Page.Panes.Contains(pane)) if (PageState.Page.Panes.Contains(pane))
{ {
_pane = pane; _pane = pane;
@ -585,10 +588,13 @@
private async Task UpdateSettingsAsync() private async Task UpdateSettingsAsync()
{ {
Dictionary<string, string> settings = await SettingService.GetUserSettingsAsync(PageState.User.UserId); if (PageState.User != null)
settings = SettingService.SetSetting(settings, settingCategory, _category); {
settings = SettingService.SetSetting(settings, settingPane, _pane); Dictionary<string, string> settings = await SettingService.GetUserSettingsAsync(PageState.User.UserId);
await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId); settings = SettingService.SetSetting(settings, settingCategory, _category);
settings = SettingService.SetSetting(settings, settingPane, _pane);
await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId);
}
} }
private void ClearMessage() private void ClearMessage()