From 8c9e886136a0a8f53313b41ffb339f85106c745c Mon Sep 17 00:00:00 2001 From: sbwalker Date: Mon, 25 Sep 2023 13:53:05 -0400 Subject: [PATCH] refactor logic to redirect to external login provider when local site login is disabled --- Oqtane.Client/Modules/Admin/Login/Index.razor | 17 ++++++++++++----- .../Themes/Controls/Theme/LoginBase.cs | 9 +-------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Login/Index.razor b/Oqtane.Client/Modules/Admin/Login/Index.razor index b8e3c8f2..5633a504 100644 --- a/Oqtane.Client/Modules/Admin/Login/Index.razor +++ b/Oqtane.Client/Modules/Admin/Login/Index.razor @@ -93,16 +93,23 @@ { try { - _togglepassword = SharedLocalizer["ShowPassword"]; - - _allowsitelogin = bool.Parse(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:AllowSiteLogin", "true")); - _allowexternallogin = (SettingService.GetSetting(PageState.Site.Settings, "ExternalLogin:ProviderType", "") != "") ? true : false; - if (PageState.QueryString.ContainsKey("returnurl")) { _returnUrl = PageState.QueryString["returnurl"]; } + _allowexternallogin = (SettingService.GetSetting(PageState.Site.Settings, "ExternalLogin:ProviderType", "") != "") ? true : false; + _allowsitelogin = bool.Parse(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:AllowSiteLogin", "true")); + + if (_allowexternallogin && !_allowsitelogin) + { + // redirect to external login + NavigationManager.NavigateTo(Utilities.TenantUrl(PageState.Alias, "/pages/external?returnurl=" + _returnUrl), true); + return; + } + + _togglepassword = SharedLocalizer["ShowPassword"]; + if (PageState.QueryString.ContainsKey("name")) { _username = PageState.QueryString["name"]; diff --git a/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs b/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs index 37d57547..fd4310a9 100644 --- a/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs +++ b/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs @@ -24,14 +24,7 @@ namespace Oqtane.Themes.Controls protected void LoginUser() { Route route = new Route(PageState.Uri.AbsoluteUri, PageState.Alias.Path); - if (bool.Parse(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:AllowSiteLogin", "true"))) - { - NavigationManager.NavigateTo(NavigateUrl("login", "?returnurl=" + WebUtility.UrlEncode(route.PathAndQuery))); - } - else - { - NavigationManager.NavigateTo(Utilities.TenantUrl(PageState.Alias, "/pages/external?returnurl=" + WebUtility.UrlEncode(route.PathAndQuery)), true); - } + NavigationManager.NavigateTo(NavigateUrl("login", "?returnurl=" + WebUtility.UrlEncode(route.PathAndQuery))); } protected async Task LogoutUser()