Merge pull request #5563 from sbwalker/dev

allow modules to be able to specify the databases they support
This commit is contained in:
Shaun Walker
2025-09-02 08:33:51 -04:00
committed by GitHub
3 changed files with 39 additions and 2 deletions

View File

@ -476,7 +476,7 @@ namespace Oqtane.Infrastructure
{
index = -1;
}
if (index != (versions.Length - 1))
if (index != (versions.Length - 1) && ModuleSupportsDatabase(moduleDefinition.Databases, tenant.DBType))
{
for (var i = (index + 1); i < versions.Length; i++)
{
@ -789,5 +789,21 @@ namespace Oqtane.Infrastructure
_configManager.AddOrUpdateSetting(SettingKeys.AvailableDatabasesSection, databases, true);
}
}
private bool ModuleSupportsDatabase(string databases, string dbtype)
{
// check if module supports tenant database
if (!string.IsNullOrEmpty(databases))
{
foreach (var database in databases.Split(',', StringSplitOptions.RemoveEmptyEntries))
{
if (dbtype.ToLower().Contains(database.ToLower()))
{
return true;
}
}
}
return string.IsNullOrEmpty(databases);
}
}
}

View File

@ -196,6 +196,7 @@ namespace Oqtane.Repository
if (siteId != -1)
{
var siteKey = _tenants.GetAlias().SiteKey;
var dbType = _tenants.GetTenant().DBType;
var assemblies = new List<string>();
// get all module definition permissions for site
@ -219,6 +220,22 @@ namespace Oqtane.Repository
moduledefinition.IsEnabled = moduledefinition.IsAutoEnabled;
}
// check if module supports tenant database
if (moduledefinition.IsEnabled)
{
moduledefinition.IsEnabled = string.IsNullOrEmpty(moduledefinition.Databases);
if (!string.IsNullOrEmpty(moduledefinition.Databases))
{
foreach (var database in moduledefinition.Databases.Split(',', StringSplitOptions.RemoveEmptyEntries))
{
if (dbType.ToLower().Contains(database.ToLower()))
{
moduledefinition.IsEnabled = true;
}
}
}
}
if (moduledefinition.IsEnabled)
{
// build list of assemblies for site