From 467e5423d28fb65a6f95c8f4d1340846fe45cb2a Mon Sep 17 00:00:00 2001 From: Leigh Pointer Date: Tue, 12 Dec 2023 07:25:35 +0100 Subject: [PATCH] Fix #3539 for Multiple click on login button Updated the LoginBase, if the URI doesn't contain the login URL then the NavigationManager is updated. --- .../Themes/Controls/Theme/LoginBase.cs | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs b/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs index 3279a94e..0b3ce9b8 100644 --- a/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs +++ b/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs @@ -28,16 +28,21 @@ namespace Oqtane.Themes.Controls var returnurl = WebUtility.UrlEncode(PageState.Route.PathAndQuery); - if (allowexternallogin && !allowsitelogin) + // Check if not already actioned Login + if(!NavigationManager.Uri.ToString().Contains("login?returnurl=%2F")) { - // external login - NavigationManager.NavigateTo(Utilities.TenantUrl(PageState.Alias, "/pages/external?returnurl=" + returnurl), true); - } - else - { - // local login - NavigationManager.NavigateTo(NavigateUrl("login", "?returnurl=" + returnurl)); + if (allowexternallogin && !allowsitelogin) + { + // external login + NavigationManager.NavigateTo(Utilities.TenantUrl(PageState.Alias, "/pages/external?returnurl=" + returnurl), true); + } + else + { + // local login + NavigationManager.NavigateTo(NavigateUrl("login", "?returnurl=" + returnurl)); + } } + } protected async Task LogoutUser()