From 426286599011824edc523acb746349ffb02b873e Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 26 Feb 2020 01:37:48 -0500 Subject: [PATCH] further changes for site creation --- Oqtane.Client/Services/SiteService.cs | 3 ++- Oqtane.Client/Services/UserService.cs | 3 ++- Oqtane.Server/Repository/TenantResolver.cs | 22 +++++++++++++++------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Oqtane.Client/Services/SiteService.cs b/Oqtane.Client/Services/SiteService.cs index bf5add07..4b922c1f 100644 --- a/Oqtane.Client/Services/SiteService.cs +++ b/Oqtane.Client/Services/SiteService.cs @@ -5,6 +5,7 @@ using System.Linq; using Microsoft.AspNetCore.Components; using System.Collections.Generic; using Oqtane.Shared; +using System.Net; namespace Oqtane.Services { @@ -45,7 +46,7 @@ namespace Oqtane.Services } else { - return await http.PostJsonAsync(CreateApiUrl(Alias, NavigationManager.Uri, "Site"), Site); + return await http.PostJsonAsync(apiurl + "?alias=" + WebUtility.UrlEncode(Alias.Name), Site); } } diff --git a/Oqtane.Client/Services/UserService.cs b/Oqtane.Client/Services/UserService.cs index aa6da0df..6928645f 100644 --- a/Oqtane.Client/Services/UserService.cs +++ b/Oqtane.Client/Services/UserService.cs @@ -6,6 +6,7 @@ using System.Net.Http; using Microsoft.AspNetCore.Components; using System.Threading.Tasks; using System.Collections.Generic; +using System.Net; namespace Oqtane.Services { @@ -53,7 +54,7 @@ namespace Oqtane.Services { try { - return await http.PostJsonAsync(CreateApiUrl(Alias, NavigationManager.Uri, "User"), User); + return await http.PostJsonAsync(apiurl + "?alias=" + WebUtility.UrlEncode(Alias.Name), User); } catch { diff --git a/Oqtane.Server/Repository/TenantResolver.cs b/Oqtane.Server/Repository/TenantResolver.cs index 299a8a41..d0386bed 100644 --- a/Oqtane.Server/Repository/TenantResolver.cs +++ b/Oqtane.Server/Repository/TenantResolver.cs @@ -26,16 +26,24 @@ namespace Oqtane.Repository // get alias based on request context if (accessor.HttpContext != null) { - aliasname = accessor.HttpContext.Request.Host.Value; - string path = accessor.HttpContext.Request.Path.Value; - string[] segments = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); - if (segments.Length > 1 && segments[1] == "api" && segments[0] != "~") + // check if an alias is passed as a querystring parameter + if (accessor.HttpContext.Request.Query.ContainsKey("alias")) { - aliasname += "/" + segments[0]; + aliasname = accessor.HttpContext.Request.Query["alias"]; } - if (aliasname.EndsWith("/")) + else // get the alias from the request url { - aliasname = aliasname.Substring(0, aliasname.Length - 1); + aliasname = accessor.HttpContext.Request.Host.Value; + string path = accessor.HttpContext.Request.Path.Value; + string[] segments = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); + if (segments.Length > 1 && segments[1] == "api" && segments[0] != "~") + { + aliasname += "/" + segments[0]; + } + if (aliasname.EndsWith("/")) + { + aliasname = aliasname.Substring(0, aliasname.Length - 1); + } } } else // background processes can pass in an alias using the SiteState service