Merge pull request #1881 from sbwalker/dev

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:24:17 -05:00 committed by GitHub
commit ee18bbd145
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 40 additions and 11 deletions

View File

@ -2,6 +2,7 @@ using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using Oqtane.Enums;
using Oqtane.Providers;
using Oqtane.Security;
using Oqtane.Services;
@ -17,6 +18,7 @@ namespace Oqtane.Themes.Controls
[Inject] public IJSRuntime jsRuntime { get; set; }
[Inject] public IServiceProvider ServiceProvider { get; set; }
[Inject] public SiteState SiteState { get; set; }
[Inject] public ILogService LoggingService { get; set; }
protected void LoginUser()
{
@ -31,6 +33,8 @@ namespace Oqtane.Themes.Controls
protected async Task LogoutUser()
{
await UserService.LogoutUserAsync(PageState.User);
await LoggingService.Log(PageState.Alias, PageState.Page.PageId, PageState.ModuleId, PageState.User.UserId, GetType().AssemblyQualifiedName, "Logout", LogFunction.Security, LogLevel.Information, null, "User Logout For Username {Username}", PageState.User.Username);
PageState.User = null;
bool authorizedtoviewpage = UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, PageState.Page.Permissions);

View File

@ -174,12 +174,6 @@ namespace Oqtane.Controllers
if (module != null && module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, EntityNames.Module, module.ModuleId, PermissionNames.Edit))
{
_modules.DeleteModule(id);
_settings.GetSettings(EntityNames.Module, id)?.ToList().ForEach(ms =>
{
_settings.DeleteSetting(EntityNames.Module, ms.SettingId);
});
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId);
_logger.Log(LogLevel.Information, this, LogFunction.Delete, "Module Deleted {ModuleId}", id);
}

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);