Merge pull request #6112 from sbwalker/dev

fix #6111 - regression issue caused by #6106
This commit is contained in:
Shaun Walker
2026-03-06 11:19:10 -05:00
committed by GitHub
3 changed files with 23 additions and 9 deletions

View File

@@ -264,7 +264,8 @@ namespace Oqtane.Controllers
_userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Folder, folderid, PermissionNames.Edit) && !string.IsNullOrEmpty(filename)) _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Folder, folderid, PermissionNames.Edit) && !string.IsNullOrEmpty(filename))
{ {
// get content // get content
var content = _modules.ExportModule(moduleid); module.IPortableContext = "Export Module";
var content = _modules.ExportModule(module);
// get folder // get folder
var folder = _folders.GetFolder(folderid, false); var folder = _folders.GetFolder(folderid, false);
@@ -317,7 +318,8 @@ namespace Oqtane.Controllers
var module = _modules.GetModule(moduleid); var module = _modules.GetModule(moduleid);
if (ModelState.IsValid && module != null && module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Page, pageid, PermissionNames.Edit)) if (ModelState.IsValid && module != null && module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Page, pageid, PermissionNames.Edit))
{ {
success = _modules.ImportModule(moduleid, content); module.IPortableContext = "Import Module";
success = _modules.ImportModule(module, content);
if (success) if (success)
{ {
_logger.Log(LogLevel.Information, this, LogFunction.Update, "Module Content Imported {ModuleId}", moduleid); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Module Content Imported {ModuleId}", moduleid);

View File

@@ -238,10 +238,13 @@ namespace Oqtane.Controllers
}; };
module = _modules.AddModule(module); module = _modules.AddModule(module);
string content = _modules.ExportModule(pm.ModuleId); // deep copy module content (includes settings)
pm.Module.IPortableContext = "Copy Page";
string content = _modules.ExportModule(pm.Module);
if (content != "") if (content != "")
{ {
_modules.ImportModule(module.ModuleId, content); module.IPortableContext = "Copy Page";
_modules.ImportModule(module, content);
} }
PageModule pagemodule = new PageModule(); PageModule pagemodule = new PageModule();

View File

@@ -132,7 +132,6 @@ namespace Oqtane.Repository
{ {
try try
{ {
module.IPortableContext = "Export Module";
module.Settings = settings.ToDictionary(x => x.SettingName, x => x.SettingValue); module.Settings = settings.ToDictionary(x => x.SettingName, x => x.SettingValue);
var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype); var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype);
modulecontent.Content = ((IPortable)moduleobject).ExportModule(module); modulecontent.Content = ((IPortable)moduleobject).ExportModule(module);
@@ -173,13 +172,24 @@ namespace Oqtane.Repository
ModuleDefinition moduledefinition = moduledefinitions.Where(item => item.ModuleDefinitionName == module.ModuleDefinitionName).FirstOrDefault(); ModuleDefinition moduledefinition = moduledefinitions.Where(item => item.ModuleDefinitionName == module.ModuleDefinitionName).FirstOrDefault();
if (moduledefinition != null) if (moduledefinition != null)
{ {
ModuleContent modulecontent = JsonSerializer.Deserialize<ModuleContent>(content.Replace("\n", "")); var modulecontent = new ModuleContent();
if (content.StartsWith("{") && content.EndsWith("}"))
{
// content was exported as a serialized ModuleContent object
modulecontent = JsonSerializer.Deserialize<ModuleContent>(content.Replace("\n", ""));
}
else
{
// raw content
modulecontent.ModuleDefinitionName = moduledefinition.ModuleDefinitionName;
modulecontent.Version = moduledefinition.Version;
modulecontent.Content = content;
}
if (modulecontent.ModuleDefinitionName == moduledefinition.ModuleDefinitionName) if (modulecontent.ModuleDefinitionName == moduledefinition.ModuleDefinitionName)
{ {
var settings = _settings.GetSettings(EntityNames.Module, module.ModuleId);
if (modulecontent.Settings != null) if (modulecontent.Settings != null)
{ {
var settings = _settings.GetSettings(EntityNames.Module, module.ModuleId);
foreach (var kvp in modulecontent.Settings) foreach (var kvp in modulecontent.Settings)
{ {
var setting = settings.FirstOrDefault(item => item.SettingName == kvp.Key); var setting = settings.FirstOrDefault(item => item.SettingName == kvp.Key);
@@ -206,7 +216,6 @@ namespace Oqtane.Repository
{ {
try try
{ {
module.IPortableContext = "Import Module";
module.Settings = _settings.GetSettings(EntityNames.Module, module.ModuleId).ToDictionary(x => x.SettingName, x => x.SettingValue); module.Settings = _settings.GetSettings(EntityNames.Module, module.ModuleId).ToDictionary(x => x.SettingName, x => x.SettingValue);
var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype); var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype);
((IPortable)moduleobject).ImportModule(module, modulecontent.Content, modulecontent.Version); ((IPortable)moduleobject).ImportModule(module, modulecontent.Content, modulecontent.Version);