From e23a9f22dd45d0c4becb317b757d263636dce85e Mon Sep 17 00:00:00 2001 From: Leigh Pointer Date: Thu, 2 Mar 2023 06:58:19 +0100 Subject: [PATCH] Fix Correct Permission Delete when ModuleDef is deleted #2619 Added PermissionsRepository to delete the Module permissions when the Module Definition is deleted. --- Oqtane.Server/Controllers/ModuleDefinitionController.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Oqtane.Server/Controllers/ModuleDefinitionController.cs b/Oqtane.Server/Controllers/ModuleDefinitionController.cs index 2c8a31bd..074dad9d 100644 --- a/Oqtane.Server/Controllers/ModuleDefinitionController.cs +++ b/Oqtane.Server/Controllers/ModuleDefinitionController.cs @@ -25,6 +25,7 @@ namespace Oqtane.Controllers private readonly IModuleDefinitionRepository _moduleDefinitions; private readonly IModuleRepository _modules; private readonly IPageModuleRepository _pagemodules; + private readonly IPermissionRepository _permissions; private readonly ITenantRepository _tenants; private readonly ISqlRepository _sql; private readonly IUserPermissions _userPermissions; @@ -36,11 +37,12 @@ namespace Oqtane.Controllers private readonly ILogManager _logger; private readonly Alias _alias; - public ModuleDefinitionController(IModuleDefinitionRepository moduleDefinitions, IModuleRepository module,IPageModuleRepository pageModule, ITenantRepository tenants, ISqlRepository sql, IUserPermissions userPermissions, IInstallationManager installationManager, IWebHostEnvironment environment, IServiceProvider serviceProvider, ITenantManager tenantManager, ISyncManager syncManager, ILogManager logger) + public ModuleDefinitionController(IModuleDefinitionRepository moduleDefinitions, IModuleRepository module, IPageModuleRepository pageModule, IPermissionRepository permission, ITenantRepository tenants, ISqlRepository sql, IUserPermissions userPermissions, IInstallationManager installationManager, IWebHostEnvironment environment, IServiceProvider serviceProvider, ITenantManager tenantManager, ISyncManager syncManager, ILogManager logger) { _moduleDefinitions = moduleDefinitions; _modules = module; _pagemodules = pageModule; + _permissions = permission; _tenants = tenants; _sql = sql; _userPermissions = userPermissions; @@ -246,6 +248,9 @@ namespace Oqtane.Controllers _pagemodules.DeletePageModule(pageModule.PageModuleId); } + // Remove Permissions + _permissions.DeletePermissions(moduledefinition.SiteId, EntityNames.Module, moduleToRemove.ModuleId); + // Remove the Module item _modules.DeleteModule(moduleToRemove.ModuleId); }