fix #6111 - regression issue caused by #6106

Related Work Items: #6
This commit is contained in:
sbwalker
2026-03-06 11:18:50 -05:00
parent d2e5ab61da
commit f09b21295a
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))
{
// get content
var content = _modules.ExportModule(moduleid);
module.IPortableContext = "Export Module";
var content = _modules.ExportModule(module);
// get folder
var folder = _folders.GetFolder(folderid, false);
@@ -317,7 +318,8 @@ namespace Oqtane.Controllers
var module = _modules.GetModule(moduleid);
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)
{
_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);
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 != "")
{
_modules.ImportModule(module.ModuleId, content);
module.IPortableContext = "Copy Page";
_modules.ImportModule(module, content);
}
PageModule pagemodule = new PageModule();

View File

@@ -132,7 +132,6 @@ namespace Oqtane.Repository
{
try
{
module.IPortableContext = "Export Module";
module.Settings = settings.ToDictionary(x => x.SettingName, x => x.SettingValue);
var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype);
modulecontent.Content = ((IPortable)moduleobject).ExportModule(module);
@@ -173,13 +172,24 @@ namespace Oqtane.Repository
ModuleDefinition moduledefinition = moduledefinitions.Where(item => item.ModuleDefinitionName == module.ModuleDefinitionName).FirstOrDefault();
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)
{
var settings = _settings.GetSettings(EntityNames.Module, module.ModuleId);
if (modulecontent.Settings != null)
{
var settings = _settings.GetSettings(EntityNames.Module, module.ModuleId);
foreach (var kvp in modulecontent.Settings)
{
var setting = settings.FirstOrDefault(item => item.SettingName == kvp.Key);
@@ -206,7 +216,6 @@ namespace Oqtane.Repository
{
try
{
module.IPortableContext = "Import Module";
module.Settings = _settings.GetSettings(EntityNames.Module, module.ModuleId).ToDictionary(x => x.SettingName, x => x.SettingValue);
var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype);
((IPortable)moduleobject).ImportModule(module, modulecontent.Content, modulecontent.Version);