Merge pull request #3701 from sbwalker/dev
implement non-default alias redirect
This commit is contained in:
commit
980a9d0640
@ -12,15 +12,17 @@
|
|||||||
@using Oqtane.Themes
|
@using Oqtane.Themes
|
||||||
@using System.Net
|
@using System.Net
|
||||||
@using Microsoft.AspNetCore.Localization
|
@using Microsoft.AspNetCore.Localization
|
||||||
|
@inject NavigationManager NavigationManager
|
||||||
@inject IAntiforgery Antiforgery;
|
@inject IAntiforgery Antiforgery;
|
||||||
@inject IConfigManager ConfigManager;
|
@inject IConfigManager ConfigManager;
|
||||||
@inject ITenantManager TenantManager;
|
@inject ITenantManager TenantManager;
|
||||||
@inject ILocalizationManager LocalizationManager;
|
|
||||||
@inject ISiteRepository SiteRepository;
|
@inject ISiteRepository SiteRepository;
|
||||||
@inject IPageRepository PageRepository;
|
@inject IPageRepository PageRepository;
|
||||||
@inject IThemeRepository ThemeRepository;
|
@inject IThemeRepository ThemeRepository;
|
||||||
@inject ILanguageRepository LanguageRepository;
|
@inject ILanguageRepository LanguageRepository;
|
||||||
@inject IServerStateManager ServerStateManager;
|
@inject IServerStateManager ServerStateManager;
|
||||||
|
@inject ILocalizationManager LocalizationManager;
|
||||||
|
@inject IAliasRepository AliasRepository;
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="@_language">
|
<html lang="@_language">
|
||||||
@ -95,22 +97,7 @@
|
|||||||
{
|
{
|
||||||
var url = WebUtility.UrlDecode(Context.Request.GetEncodedUrl());
|
var url = WebUtility.UrlDecode(Context.Request.GetEncodedUrl());
|
||||||
|
|
||||||
// redirect non-default alias unless you are trying to access site settings
|
HandleDefaultAliasRedirect(alias, url);
|
||||||
// if (!alias.IsDefault && !url.Contains("admin/site"))
|
|
||||||
// {
|
|
||||||
// var aliases = AliasRepository.GetAliases().Where(item => item.TenantId == alias.TenantId && item.SiteId == alias.SiteId);
|
|
||||||
// if (aliases.Where(item => item.IsDefault).FirstOrDefault() != null)
|
|
||||||
// {
|
|
||||||
// return RedirectPermanent(url.Replace(alias.Name, aliases.Where(item => item.IsDefault).FirstOrDefault().Name));
|
|
||||||
// }
|
|
||||||
// else // no default specified - use first alias
|
|
||||||
// {
|
|
||||||
// if (alias.Name.Trim() != aliases.First().Name.Trim())
|
|
||||||
// {
|
|
||||||
// return RedirectPermanent(url.Replace(alias.Name, aliases.First().Name));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
var site = SiteRepository.GetSite(alias.SiteId);
|
var site = SiteRepository.GetSite(alias.SiteId);
|
||||||
if (site != null && (!site.IsDeleted || url.Contains("admin/site")) && site.Runtime != "Hybrid")
|
if (site != null && (!site.IsDeleted || url.Contains("admin/site")) && site.Runtime != "Hybrid")
|
||||||
@ -243,6 +230,32 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HandleDefaultAliasRedirect(Alias alias, string url)
|
||||||
|
{
|
||||||
|
// redirect non-default alias
|
||||||
|
if (!alias.IsDefault)
|
||||||
|
{
|
||||||
|
// get aliases for site and tenant
|
||||||
|
var aliases = AliasRepository.GetAliases().Where(item => item.TenantId == alias.TenantId && item.SiteId == alias.SiteId);
|
||||||
|
// get first default alias
|
||||||
|
var defaultAlias = aliases.Where(item => item.IsDefault).FirstOrDefault();
|
||||||
|
if (defaultAlias != null)
|
||||||
|
{
|
||||||
|
// redirect to default alias
|
||||||
|
NavigationManager.NavigateTo(url.Replace(alias.Name, defaultAlias.Name), true);
|
||||||
|
}
|
||||||
|
else // no default alias specified - use first alias
|
||||||
|
{
|
||||||
|
defaultAlias = aliases.FirstOrDefault();
|
||||||
|
if (defaultAlias != null && alias.Name.Trim() != defaultAlias.Name.Trim())
|
||||||
|
{
|
||||||
|
// redirect to first alias
|
||||||
|
NavigationManager.NavigateTo(url.Replace(alias.Name, defaultAlias.Name), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private string CreatePWAScript(Alias alias, Site site, Route route)
|
private string CreatePWAScript(Alias alias, Site site, Route route)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
|
Reference in New Issue
Block a user