From 0c384249bf9db7490a83527dbe4823752d08c44b Mon Sep 17 00:00:00 2001 From: Emanuele Filardo Date: Sat, 12 Oct 2019 17:21:42 +0200 Subject: [PATCH 1/2] Fix UpdatePermissions instead of DeletePermissions in DeletePage and DeleteModule Improve Page Delete to remove even modules, permissiones and pagemodules --- Oqtane.Server/Repository/ModuleRepository.cs | 2 +- Oqtane.Server/Repository/PageRepository.cs | 22 ++++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Oqtane.Server/Repository/ModuleRepository.cs b/Oqtane.Server/Repository/ModuleRepository.cs index 2754161c..f9a71d29 100644 --- a/Oqtane.Server/Repository/ModuleRepository.cs +++ b/Oqtane.Server/Repository/ModuleRepository.cs @@ -64,7 +64,7 @@ namespace Oqtane.Repository public void DeleteModule(int ModuleId) { Module Module = db.Module.Find(ModuleId); - Permissions.UpdatePermissions(Module.SiteId, "Module", ModuleId, ""); + Permissions.DeletePermissions(Module.SiteId, "Module", ModuleId); db.Module.Remove(Module); db.SaveChanges(); } diff --git a/Oqtane.Server/Repository/PageRepository.cs b/Oqtane.Server/Repository/PageRepository.cs index 5b849d1b..c2a7fff1 100644 --- a/Oqtane.Server/Repository/PageRepository.cs +++ b/Oqtane.Server/Repository/PageRepository.cs @@ -9,11 +9,15 @@ namespace Oqtane.Repository { private TenantDBContext db; private readonly IPermissionRepository Permissions; + private readonly IPageModuleRepository PageModules; + private readonly IModuleRepository ModuleRepository; - public PageRepository(TenantDBContext context, IPermissionRepository Permissions) + public PageRepository(TenantDBContext context, IPermissionRepository Permissions, IPageModuleRepository PageModules, IModuleRepository ModuleRepository) { db = context; this.Permissions = Permissions; + this.PageModules = PageModules; + this.ModuleRepository = ModuleRepository; } public IEnumerable GetPages() @@ -62,7 +66,21 @@ namespace Oqtane.Repository public void DeletePage(int PageId) { Page Page = db.Page.Find(PageId); - Permissions.UpdatePermissions(Page.SiteId, "Page", PageId, ""); + + IEnumerable pageModules = db.PageModule.Where(item => item.PageId == PageId).ToList(); + foreach (var pageModule in pageModules) + { + PageModules.DeletePageModule(pageModule.PageModuleId); + + IEnumerable modules = db.Module.Where(item => item.ModuleId == pageModule.ModuleId).ToList(); + foreach (var module in modules) + { + ModuleRepository.DeleteModule(module.ModuleId); + } + } + + Permissions.DeletePermissions(Page.SiteId, "Page", PageId); + db.Page.Remove(Page); db.SaveChanges(); } From c2be403948998311989102661e1d1d590249c4a2 Mon Sep 17 00:00:00 2001 From: Emanuele Filardo Date: Sun, 13 Oct 2019 21:58:05 +0200 Subject: [PATCH 2/2] Partial rollback, don't remove the Module but only the PageModules when delete Page --- Oqtane.Server/Repository/PageRepository.cs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/Oqtane.Server/Repository/PageRepository.cs b/Oqtane.Server/Repository/PageRepository.cs index c2a7fff1..78a21e9e 100644 --- a/Oqtane.Server/Repository/PageRepository.cs +++ b/Oqtane.Server/Repository/PageRepository.cs @@ -66,21 +66,12 @@ namespace Oqtane.Repository public void DeletePage(int PageId) { Page Page = db.Page.Find(PageId); - + Permissions.DeletePermissions(Page.SiteId, "Page", PageId); IEnumerable pageModules = db.PageModule.Where(item => item.PageId == PageId).ToList(); foreach (var pageModule in pageModules) { PageModules.DeletePageModule(pageModule.PageModuleId); - - IEnumerable modules = db.Module.Where(item => item.ModuleId == pageModule.ModuleId).ToList(); - foreach (var module in modules) - { - ModuleRepository.DeleteModule(module.ModuleId); - } } - - Permissions.DeletePermissions(Page.SiteId, "Page", PageId); - db.Page.Remove(Page); db.SaveChanges(); }