From 23b9b8aaf62a34b687b9fd55cc6d011ce067bdc7 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Tue, 24 Oct 2023 13:46:25 -0400 Subject: [PATCH] if site login is disabled redirect Login to external identity provider --- Oqtane.Client/Modules/Admin/Login/Index.razor | 17 +++++------------ .../Themes/Controls/Theme/LoginBase.cs | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Login/Index.razor b/Oqtane.Client/Modules/Admin/Login/Index.razor index 5633a504..476c93ef 100644 --- a/Oqtane.Client/Modules/Admin/Login/Index.razor +++ b/Oqtane.Client/Modules/Admin/Login/Index.razor @@ -93,23 +93,16 @@ { try { + _allowexternallogin = (SettingService.GetSetting(PageState.Site.Settings, "ExternalLogin:ProviderType", "") != "") ? true : false; + _allowsitelogin = bool.Parse(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:AllowSiteLogin", "true")); + + _togglepassword = SharedLocalizer["ShowPassword"]; + 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 fd4310a9..b3de5229 100644 --- a/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs +++ b/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs @@ -23,8 +23,23 @@ namespace Oqtane.Themes.Controls protected void LoginUser() { + var allowexternallogin = (SettingService.GetSetting(PageState.Site.Settings, "ExternalLogin:ProviderType", "") != "") ? true : false; + var allowsitelogin = bool.Parse(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:AllowSiteLogin", "true")); + Route route = new Route(PageState.Uri.AbsoluteUri, PageState.Alias.Path); - NavigationManager.NavigateTo(NavigateUrl("login", "?returnurl=" + WebUtility.UrlEncode(route.PathAndQuery))); + var returnurl = WebUtility.UrlEncode(route.PathAndQuery); + + 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()