Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Clearing modules from the Recycle Bin Records are Orphaned #2625 #2626

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions Oqtane.Client/Modules/Admin/RecycleBin/Index.razor
Original file line number Diff line number Diff line change
Expand Up @@ -182,10 +182,8 @@ else
{
try
{
await PageModuleService.DeletePageModuleAsync(module.PageModuleId);

// check if there are any remaining module instances in the site
if (!_modules.Exists(item => item.ModuleId == module.ModuleId))
if (_modules.Exists(item => item.ModuleId == module.ModuleId))
{
await ModuleService.DeleteModuleAsync(module.ModuleId);
}
Expand All @@ -208,10 +206,8 @@ else
ModuleInstance.ShowProgressIndicator();
foreach (Module module in _modules.Where(item => item.IsDeleted))
{
await PageModuleService.DeletePageModuleAsync(module.PageModuleId);

// check if there are any remaining module instances in the site
if (!_modules.Exists(item => item.ModuleId == module.ModuleId))
if (_modules.Exists(item => item.ModuleId == module.ModuleId))
{
await ModuleService.DeleteModuleAsync(module.ModuleId);
}
Expand Down
15 changes: 14 additions & 1 deletion Oqtane.Server/Controllers/ModuleController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,20 @@ public class ModuleController : Controller
private readonly IPageRepository _pages;
private readonly IModuleDefinitionRepository _moduleDefinitions;
private readonly ISettingRepository _settings;
private readonly IPermissionRepository _permissions;
private readonly IUserPermissions _userPermissions;
private readonly ISyncManager _syncManager;
private readonly ILogManager _logger;
private readonly Alias _alias;

public ModuleController(IModuleRepository modules, IPageModuleRepository pageModules, IPageRepository pages, IModuleDefinitionRepository moduleDefinitions, ISettingRepository settings, IUserPermissions userPermissions, ITenantManager tenantManager, ISyncManager syncManager, ILogManager logger)
public ModuleController(IModuleRepository modules, IPageModuleRepository pageModules, IPageRepository pages, IModuleDefinitionRepository moduleDefinitions, ISettingRepository settings, IPermissionRepository Permissions, IUserPermissions userPermissions, ITenantManager tenantManager, ISyncManager syncManager, ILogManager logger)
{
_modules = modules;
_pageModules = pageModules;
_pages = pages;
_moduleDefinitions = moduleDefinitions;
_settings = settings;
_permissions = Permissions;
_userPermissions = userPermissions;
_syncManager = syncManager;
_logger = logger;
Expand Down Expand Up @@ -194,6 +196,17 @@ public void Delete(int id)
var module = _modules.GetModule(id);
if (module != null && module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Module, module.ModuleId, PermissionNames.Edit))
{

// Delete the Related Module Records; PageModule, Permissions, Settings
// Get the PageModule because the ModuleControll does not populate the PageModuleId
var _pageModule = _pageModules.GetPageModules(module.SiteId).First(pm => pm.ModuleId == module.ModuleId);
// Delete the PageModule item
_pageModules.DeletePageModule(_pageModule.PageModuleId);
// Delete the Permission Items
_permissions.DeletePermissions(module.SiteId, EntityNames.Module, module.ModuleId);
// Delete the Settings Items
_settings.DeleteSettings(EntityNames.Module, module.ModuleId);
// Delete the Module
_modules.DeleteModule(id);
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Module, module.ModuleId, SyncEventActions.Delete);
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh);
Expand Down
4 changes: 2 additions & 2 deletions Oqtane.Server/Repository/ModuleRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ public Module GetModule(int moduleId, bool tracking)
public void DeleteModule(int moduleId)
{
Module module = _db.Module.Find(moduleId);
_permissions.DeletePermissions(module.SiteId, EntityNames.Module, moduleId);
_settings.DeleteSettings(EntityNames.Module, moduleId);
//_permissions.DeletePermissions(module.SiteId, EntityNames.Module, moduleId);
//_settings.DeleteSettings(EntityNames.Module, moduleId);
_db.Module.Remove(module);
_db.SaveChanges();
}
Expand Down