remove unique index of TenantId and Name from Site table as site name does not need to be unique. Remove TenantId column from Site table as it is not necessary and should be obtained from the Alias.
This commit is contained in:
@ -683,7 +683,7 @@
|
||||
{
|
||||
var tenants = await TenantService.GetTenantsAsync();
|
||||
var _databases = await DatabaseService.GetDatabasesAsync();
|
||||
var tenant = tenants.Find(item => item.TenantId == site.TenantId);
|
||||
var tenant = tenants.Find(item => item.TenantId == PageState.Alias.TenantId);
|
||||
if (tenant != null)
|
||||
{
|
||||
_tenant = tenant.Name;
|
||||
@ -886,17 +886,17 @@
|
||||
try
|
||||
{
|
||||
var aliases = await AliasService.GetAliasesAsync();
|
||||
if (aliases.Any(item => item.SiteId != PageState.Site.SiteId || item.TenantId != PageState.Site.TenantId))
|
||||
if (aliases.Any(item => item.SiteId != PageState.Site.SiteId || item.TenantId != PageState.Alias.TenantId))
|
||||
{
|
||||
await SiteService.DeleteSiteAsync(PageState.Site.SiteId);
|
||||
await logger.LogInformation("Site Deleted {SiteId}", PageState.Site.SiteId);
|
||||
|
||||
foreach (Alias alias in aliases.Where(item => item.SiteId == PageState.Site.SiteId && item.TenantId == PageState.Site.TenantId))
|
||||
foreach (Alias alias in aliases.Where(item => item.SiteId == PageState.Site.SiteId && item.TenantId == PageState.Alias.TenantId))
|
||||
{
|
||||
await AliasService.DeleteAliasAsync(alias.AliasId);
|
||||
}
|
||||
|
||||
var redirect = aliases.First(item => item.SiteId != PageState.Site.SiteId || item.TenantId != PageState.Site.TenantId);
|
||||
var redirect = aliases.First(item => item.SiteId != PageState.Site.SiteId || item.TenantId != PageState.Alias.TenantId);
|
||||
NavigationManager.NavigateTo(PageState.Uri.Scheme + "://" + redirect.Name, true);
|
||||
}
|
||||
else
|
||||
@ -993,7 +993,7 @@
|
||||
if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
|
||||
{
|
||||
_aliases = await AliasService.GetAliasesAsync();
|
||||
_aliases = _aliases.Where(item => item.SiteId == PageState.Site.SiteId && item.TenantId == PageState.Site.TenantId).OrderBy(item => item.AliasId).ToList();
|
||||
_aliases = _aliases.Where(item => item.SiteId == PageState.Site.SiteId && item.TenantId == PageState.Alias.TenantId).OrderBy(item => item.AliasId).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1046,7 +1046,7 @@
|
||||
{
|
||||
if (_aliasid == 0)
|
||||
{
|
||||
alias = new Alias { SiteId = PageState.Site.SiteId, TenantId = PageState.Site.TenantId, Name = _aliasname, IsDefault = bool.Parse(_defaultalias) };
|
||||
alias = new Alias { SiteId = PageState.Site.SiteId, TenantId = PageState.Alias.TenantId, Name = _aliasname, IsDefault = bool.Parse(_defaultalias) };
|
||||
await AliasService.AddAliasAsync(alias);
|
||||
}
|
||||
else
|
||||
|
||||
@ -271,7 +271,7 @@
|
||||
}
|
||||
|
||||
var tenants = await TenantService.GetTenantsAsync();
|
||||
_tenant = tenants.Find(item => item.TenantId == PageState.Site.TenantId).Name;
|
||||
_tenant = tenants.Find(item => item.TenantId == PageState.Alias.TenantId).Name;
|
||||
_history = await MigrationHistoryService.GetMigrationHistoryAsync();
|
||||
|
||||
_initialized = true;
|
||||
|
||||
@ -579,7 +579,6 @@ namespace Oqtane.Infrastructure
|
||||
|
||||
site = new Site
|
||||
{
|
||||
TenantId = tenant.TenantId,
|
||||
Name = install.SiteName,
|
||||
LogoFileId = null,
|
||||
FaviconFileId = null,
|
||||
@ -596,7 +595,8 @@ namespace Oqtane.Infrastructure
|
||||
RenderMode = rendermode,
|
||||
Runtime = runtime,
|
||||
Prerender = (rendermode == RenderModes.Interactive),
|
||||
Hybrid = false
|
||||
Hybrid = false,
|
||||
TenantId = tenant.TenantId
|
||||
};
|
||||
site = sites.AddSite(site);
|
||||
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Oqtane.Databases.Interfaces;
|
||||
using Oqtane.Migrations.EntityBuilders;
|
||||
using Oqtane.Repository;
|
||||
|
||||
namespace Oqtane.Migrations.Tenant
|
||||
{
|
||||
[DbContext(typeof(TenantDBContext))]
|
||||
[Migration("Tenant.10.00.01.02")]
|
||||
public class RemoveSiteTenantId : MultiDatabaseMigration
|
||||
{
|
||||
public RemoveSiteTenantId(IDatabase database) : base(database)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
siteEntityBuilder.DropIndex("IX_Site"); // TenantId, Name
|
||||
siteEntityBuilder.DropColumn("TenantId");
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
// not implemented
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -148,6 +148,8 @@ namespace Oqtane.Services
|
||||
|
||||
// installation date used for fingerprinting static assets
|
||||
site.Fingerprint = Utilities.GenerateSimpleHash(_configManager.GetSetting("InstallationDate", DateTime.UtcNow.ToString("yyyyMMddHHmm")));
|
||||
|
||||
site.TenantId = alias.TenantId;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -181,7 +183,7 @@ namespace Oqtane.Services
|
||||
{
|
||||
var alias = _tenantManager.GetAlias();
|
||||
var current = _sites.GetSite(site.SiteId, false);
|
||||
if (site.SiteId == alias.SiteId && site.TenantId == alias.TenantId && current != null)
|
||||
if (site.SiteId == alias.SiteId && current != null)
|
||||
{
|
||||
site = _sites.UpdateSite(site);
|
||||
_syncManager.AddSyncEvent(alias, EntityNames.Site, site.SiteId, SyncEventActions.Update);
|
||||
|
||||
@ -16,11 +16,6 @@ namespace Oqtane.Models
|
||||
/// </summary>
|
||||
public int SiteId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the <see cref="Tenant"/> the Site is in
|
||||
/// </summary>
|
||||
public int TenantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The site Name
|
||||
/// </summary>
|
||||
@ -203,12 +198,17 @@ namespace Oqtane.Models
|
||||
[NotMapped]
|
||||
public string Fingerprint { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the <see cref="Tenant"/> the Site belongs to
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public int TenantId { get; set; }
|
||||
|
||||
public Site Clone()
|
||||
{
|
||||
return new Site
|
||||
{
|
||||
SiteId = SiteId,
|
||||
TenantId = TenantId,
|
||||
Name = Name,
|
||||
TimeZoneId = TimeZoneId,
|
||||
LogoFileId = LogoFileId,
|
||||
@ -246,7 +246,8 @@ namespace Oqtane.Models
|
||||
Pages = Pages.ConvertAll(page => page.Clone()),
|
||||
Languages = Languages.ConvertAll(language => language.Clone()),
|
||||
Themes = Themes,
|
||||
Fingerprint = Fingerprint
|
||||
Fingerprint = Fingerprint,
|
||||
TenantId = TenantId
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user