Fix Correct Permission Delete when ModuleDef is deleted #2619

Added PermissionsRepository to delete the Module permissions when the Module Definition is deleted.
This commit is contained in:
Leigh Pointer 2023-03-02 06:58:19 +01:00
parent a0f2eedd7f
commit e23a9f22dd

View File

@ -25,6 +25,7 @@ namespace Oqtane.Controllers
private readonly IModuleDefinitionRepository _moduleDefinitions; private readonly IModuleDefinitionRepository _moduleDefinitions;
private readonly IModuleRepository _modules; private readonly IModuleRepository _modules;
private readonly IPageModuleRepository _pagemodules; private readonly IPageModuleRepository _pagemodules;
private readonly IPermissionRepository _permissions;
private readonly ITenantRepository _tenants; private readonly ITenantRepository _tenants;
private readonly ISqlRepository _sql; private readonly ISqlRepository _sql;
private readonly IUserPermissions _userPermissions; private readonly IUserPermissions _userPermissions;
@ -36,11 +37,12 @@ namespace Oqtane.Controllers
private readonly ILogManager _logger; private readonly ILogManager _logger;
private readonly Alias _alias; 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; _moduleDefinitions = moduleDefinitions;
_modules = module; _modules = module;
_pagemodules = pageModule; _pagemodules = pageModule;
_permissions = permission;
_tenants = tenants; _tenants = tenants;
_sql = sql; _sql = sql;
_userPermissions = userPermissions; _userPermissions = userPermissions;
@ -246,6 +248,9 @@ namespace Oqtane.Controllers
_pagemodules.DeletePageModule(pageModule.PageModuleId); _pagemodules.DeletePageModule(pageModule.PageModuleId);
} }
// Remove Permissions
_permissions.DeletePermissions(moduledefinition.SiteId, EntityNames.Module, moduleToRemove.ModuleId);
// Remove the Module item // Remove the Module item
_modules.DeleteModule(moduleToRemove.ModuleId); _modules.DeleteModule(moduleToRemove.ModuleId);
} }