add logging for the logout event to the UI component, relocate module setting deletion to repository

This commit is contained in:
Shaun Walker
2021-12-15 10:33:12 -05:00
parent 6a57980439
commit e3ebbde767
5 changed files with 40 additions and 11 deletions

View File

@ -11,5 +11,6 @@ namespace Oqtane.Repository
Setting UpdateSetting(Setting setting);
Setting GetSetting(string entityName, int settingId);
void DeleteSetting(string entityName, int settingId);
void DeleteSettings(string entityName, int entityId);
}
}

View File

@ -6,6 +6,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Oqtane.Models;
using Oqtane.Modules;
using Oqtane.Shared;
using Module = Oqtane.Models.Module;
namespace Oqtane.Repository
@ -14,13 +15,15 @@ namespace Oqtane.Repository
{
private TenantDBContext _db;
private readonly IPermissionRepository _permissions;
private readonly ISettingRepository _settings;
private readonly IModuleDefinitionRepository _moduleDefinitions;
private readonly IServiceProvider _serviceProvider;
public ModuleRepository(TenantDBContext context, IPermissionRepository permissions, IModuleDefinitionRepository moduleDefinitions, IServiceProvider serviceProvider)
public ModuleRepository(TenantDBContext context, IPermissionRepository permissions, ISettingRepository settings, IModuleDefinitionRepository moduleDefinitions, IServiceProvider serviceProvider)
{
_db = context;
_permissions = permissions;
_settings = settings;
_moduleDefinitions = moduleDefinitions;
_serviceProvider = serviceProvider;
}
@ -34,7 +37,7 @@ namespace Oqtane.Repository
{
_db.Module.Add(module);
_db.SaveChanges();
_permissions.UpdatePermissions(module.SiteId, "Module", module.ModuleId, module.Permissions);
_permissions.UpdatePermissions(module.SiteId, EntityNames.Module, module.ModuleId, module.Permissions);
return module;
}
@ -42,7 +45,7 @@ namespace Oqtane.Repository
{
_db.Entry(module).State = EntityState.Modified;
_db.SaveChanges();
_permissions.UpdatePermissions(module.SiteId, "Module", module.ModuleId, module.Permissions);
_permissions.UpdatePermissions(module.SiteId, EntityNames.Module, module.ModuleId, module.Permissions);
return module;
}
@ -64,7 +67,7 @@ namespace Oqtane.Repository
}
if (module != null)
{
module.Permissions = _permissions.GetPermissionString("Module", module.ModuleId);
module.Permissions = _permissions.GetPermissionString(EntityNames.Module, module.ModuleId);
}
return module;
}
@ -72,7 +75,8 @@ namespace Oqtane.Repository
public void DeleteModule(int moduleId)
{
Module module = _db.Module.Find(moduleId);
_permissions.DeletePermissions(module.SiteId, "Module", moduleId);
_permissions.DeletePermissions(module.SiteId, EntityNames.Module, moduleId);
_settings.DeleteSettings(EntityNames.Module, moduleId);
_db.Module.Remove(module);
_db.SaveChanges();
}

View File

@ -93,6 +93,32 @@ namespace Oqtane.Repository
}
}
public void DeleteSettings(string entityName, int entityId)
{
if (IsMaster(entityName))
{
IEnumerable<Setting> settings = _master.Setting
.Where(item => item.EntityName == entityName)
.Where(item => item.EntityId == entityId);
foreach (Setting setting in settings)
{
_master.Setting.Remove(setting);
}
_master.SaveChanges();
}
else
{
IEnumerable<Setting> settings = _tenant.Setting
.Where(item => item.EntityName == entityName)
.Where(item => item.EntityId == entityId);
foreach (Setting setting in settings)
{
_tenant.Setting.Remove(setting);
}
_tenant.SaveChanges();
}
}
private bool IsMaster(string EntityName)
{
return (EntityName == EntityNames.ModuleDefinition || EntityName == EntityNames.Host);