From 9e8b8f21f57eec6a2965aa1386ea2af7cdda5f27 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 10 Jul 2018 09:00:57 +0300 Subject: [PATCH] Audit middleware revised. --- .../Auditing/AbpAuditingMiddleware.cs | 66 +++++++++++++++++++ .../Auditing/AbpUnitOfWorkMiddleware.cs | 33 ---------- .../Volo/Abp/Auditing/AuditingHelper.cs | 10 --- 3 files changed, 66 insertions(+), 43 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAuditingMiddleware.cs delete mode 100644 framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpUnitOfWorkMiddleware.cs diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAuditingMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAuditingMiddleware.cs new file mode 100644 index 0000000000..73754636ec --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAuditingMiddleware.cs @@ -0,0 +1,66 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Options; +using Volo.Abp.Auditing; +using Volo.Abp.Users; + +namespace Volo.Abp.AspNetCore.Auditing +{ + public class AbpAuditingMiddleware + { + private readonly RequestDelegate _next; + private readonly IAuditingManager _auditingManager; + + protected AuditingOptions Options { get; } + protected ICurrentUser CurrentUser { get; } + + public AbpAuditingMiddleware( + RequestDelegate next, + IAuditingManager auditingManager, + ICurrentUser currentUser, + IOptions options) + { + _next = next; + _auditingManager = auditingManager; + + CurrentUser = currentUser; + Options = options.Value; + } + + public async Task Invoke(HttpContext httpContext) + { + if (!ShouldWriteAuditLog()) + { + await _next(httpContext); + return; + } + + using (var scope = _auditingManager.BeginScope()) + { + try + { + await _next(httpContext); + } + finally + { + await scope.SaveAsync(); + } + } + } + + private bool ShouldWriteAuditLog() + { + if (!Options.IsEnabled) + { + return false; + } + + if (!Options.IsEnabledForAnonymousUsers && !CurrentUser.IsAuthenticated) + { + return false; + } + + return true; + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpUnitOfWorkMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpUnitOfWorkMiddleware.cs deleted file mode 100644 index 600d200ff9..0000000000 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpUnitOfWorkMiddleware.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.AspNetCore.Http; -using Volo.Abp.Auditing; - -namespace Volo.Abp.AspNetCore.Auditing -{ - public class AbpAuditingMiddleware - { - private readonly RequestDelegate _next; - private readonly IAuditingManager _auditingManager; - - public AbpAuditingMiddleware(RequestDelegate next, IAuditingManager auditingManager) - { - _next = next; - _auditingManager = auditingManager; - } - - public async Task Invoke(HttpContext httpContext) - { - using (var scope = _auditingManager.BeginScope()) - { - try - { - await _next(httpContext); - } - finally - { - await scope.SaveAsync(); - } - } - } - } -} diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingHelper.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingHelper.cs index 677a24a095..cfbdfa98b3 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingHelper.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingHelper.cs @@ -46,16 +46,6 @@ namespace Volo.Abp.Auditing public virtual bool ShouldSaveAudit(MethodInfo methodInfo, bool defaultValue = false) { - if (!Options.IsEnabled) - { - return false; - } - - if (!Options.IsEnabledForAnonymousUsers && !CurrentUser.IsAuthenticated) - { - return false; - } - if (methodInfo == null) { return false;