Browse Source

Add ImpersonatorUserName and ImpersonatorTenantName to AuditLog.

pull/10717/head
maliming 5 years ago
parent
commit
b90161cef5
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentUserDto.cs
  2. 2
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs
  3. 4
      framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditLogInfo.cs
  4. 4
      framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingHelper.cs
  5. 10
      framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs
  6. 14
      framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUserExtensions.cs
  7. 9
      modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLog.cs
  8. 2
      modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs
  9. 2
      modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/AbpAuditLoggingDbContextModelBuilderExtensions.cs
  10. 36
      modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo/Abp/AuditLogging/AuditLogRepository_Tests.cs
  11. 6
      modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo/Abp/AuditLogging/AuditStore_Basic_Tests.cs

4
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentUserDto.cs

@ -15,6 +15,10 @@ public class CurrentUserDto
public Guid? ImpersonatorTenantId { get; set; }
public string ImpersonatorUserName { get; set; }
public string ImpersonatorTenantName { get; set; }
public string UserName { get; set; }
public string Name { get; set; }

2
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs

@ -129,6 +129,8 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
TenantId = _currentUser.TenantId,
ImpersonatorUserId = _currentUser.FindImpersonatorUserId(),
ImpersonatorTenantId = _currentUser.FindImpersonatorTenantId(),
ImpersonatorUserName = _currentUser.FindImpersonatorUserName(),
ImpersonatorTenantName = _currentUser.FindImpersonatorTenantName(),
UserName = _currentUser.UserName,
SurName = _currentUser.SurName,
Name = _currentUser.Name,

4
framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditLogInfo.cs

@ -23,6 +23,10 @@ public class AuditLogInfo : IHasExtraProperties
public Guid? ImpersonatorTenantId { get; set; }
public string ImpersonatorUserName { get; set; }
public string ImpersonatorTenantName { get; set; }
public DateTime ExecutionTime { get; set; }
public int ExecutionDuration { get; set; }

4
framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingHelper.cs

@ -136,9 +136,11 @@ public class AuditingHelper : IAuditingHelper, ITransientDependency
UserName = CurrentUser.UserName,
ClientId = CurrentClient.Id,
CorrelationId = CorrelationIdProvider.Get(),
ExecutionTime = Clock.Now,
ImpersonatorUserId = CurrentUser.FindImpersonatorUserId(),
ImpersonatorUserName = CurrentUser.FindImpersonatorUserName(),
ImpersonatorTenantId = CurrentUser.FindImpersonatorTenantId(),
ExecutionTime = Clock.Now
ImpersonatorTenantName = CurrentUser.FindImpersonatorTenantName(),
};
ExecutePreContributors(auditInfo);

10
framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs

@ -77,4 +77,14 @@ public static class AbpClaimTypes
/// Default: "impersonator_userid".
/// </summary>
public static string ImpersonatorUserId { get; set; } = "impersonator_userid";
/// <summary>
/// Default: "impersonator_tenantname".
/// </summary>
public static string ImpersonatorTenantName { get; set; } = "impersonator_tenantname";
/// <summary>
/// Default: "impersonator_username".
/// </summary>
public static string ImpersonatorUserName { get; set; } = "impersonator_username";
}

14
framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUserExtensions.cs

@ -35,7 +35,7 @@ public static class CurrentUserExtensions
public static Guid? FindImpersonatorTenantId([NotNull] this ICurrentUser currentUser)
{
var impersonatorTenantId = currentUser.FindClaimValue(AbpClaimTypes.ImpersonatorTenantId);
if (impersonatorTenantId == null || impersonatorTenantId.IsNullOrWhiteSpace())
if (impersonatorTenantId.IsNullOrWhiteSpace())
{
return null;
}
@ -50,7 +50,7 @@ public static class CurrentUserExtensions
public static Guid? FindImpersonatorUserId([NotNull] this ICurrentUser currentUser)
{
var impersonatorUserId = currentUser.FindClaimValue(AbpClaimTypes.ImpersonatorUserId);
if (impersonatorUserId == null || impersonatorUserId.IsNullOrWhiteSpace())
if (impersonatorUserId.IsNullOrWhiteSpace())
{
return null;
}
@ -61,4 +61,14 @@ public static class CurrentUserExtensions
return null;
}
public static string FindImpersonatorTenantName([NotNull] this ICurrentUser currentUser)
{
return currentUser.FindClaimValue(AbpClaimTypes.ImpersonatorTenantName);
}
public static string FindImpersonatorUserName([NotNull] this ICurrentUser currentUser)
{
return currentUser.FindClaimValue(AbpClaimTypes.ImpersonatorUserName);
}
}

9
modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLog.cs

@ -24,8 +24,12 @@ public class AuditLog : AggregateRoot<Guid>, IMultiTenant
public virtual Guid? ImpersonatorUserId { get; protected set; }
public virtual string ImpersonatorUserName { get; protected set; }
public virtual Guid? ImpersonatorTenantId { get; protected set; }
public virtual string ImpersonatorTenantName { get; protected set; }
public virtual DateTime ExecutionTime { get; protected set; }
public virtual int ExecutionDuration { get; protected set; }
@ -77,7 +81,9 @@ public class AuditLog : AggregateRoot<Guid>, IMultiTenant
string url,
int? httpStatusCode,
Guid? impersonatorUserId,
string impersonatorUserName,
Guid? impersonatorTenantId,
string impersonatorTenantName,
ExtraPropertyDictionary extraPropertyDictionary,
List<EntityChange> entityChanges,
List<AuditLogAction> actions,
@ -101,8 +107,9 @@ public class AuditLog : AggregateRoot<Guid>, IMultiTenant
Url = url.Truncate(AuditLogConsts.MaxUrlLength);
HttpStatusCode = httpStatusCode;
ImpersonatorUserId = impersonatorUserId;
ImpersonatorUserName = impersonatorUserName;
ImpersonatorTenantId = impersonatorTenantId;
ImpersonatorTenantName = impersonatorTenantName;
ExtraProperties = extraPropertyDictionary;
EntityChanges = entityChanges;
Actions = actions;

2
modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs

@ -79,7 +79,9 @@ public class AuditLogInfoToAuditLogConverter : IAuditLogInfoToAuditLogConverter,
auditLogInfo.Url,
auditLogInfo.HttpStatusCode,
auditLogInfo.ImpersonatorUserId,
auditLogInfo.ImpersonatorUserName,
auditLogInfo.ImpersonatorTenantId,
auditLogInfo.ImpersonatorTenantName,
extraProperties,
entityChanges,
actions,

2
modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/AbpAuditLoggingDbContextModelBuilderExtensions.cs

@ -31,6 +31,8 @@ public static class AbpAuditLoggingDbContextModelBuilderExtensions
b.Property(x => x.ExecutionDuration).HasColumnName(nameof(AuditLog.ExecutionDuration));
b.Property(x => x.ImpersonatorTenantId).HasColumnName(nameof(AuditLog.ImpersonatorTenantId));
b.Property(x => x.ImpersonatorUserId).HasColumnName(nameof(AuditLog.ImpersonatorUserId));
b.Property(x => x.ImpersonatorTenantName).HasColumnName(nameof(AuditLog.ImpersonatorTenantName));
b.Property(x => x.ImpersonatorUserName).HasColumnName(nameof(AuditLog.ImpersonatorUserName));
b.Property(x => x.UserId).HasColumnName(nameof(AuditLog.UserId));
b.Property(x => x.UserName).HasMaxLength(AuditLogConsts.MaxUserNameLength).HasColumnName(nameof(AuditLog.UserName));
b.Property(x => x.TenantId).HasColumnName(nameof(AuditLog.TenantId));

36
modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo/Abp/AuditLogging/AuditLogRepository_Tests.cs

@ -36,6 +36,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -87,6 +89,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -140,6 +144,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -191,6 +197,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -242,6 +250,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.SpecifyKind(DateTime.Parse("2020-01-01 01:00:00"), DateTimeKind.Utc),
ExecutionDuration = 45,
ClientIpAddress = ipAddress,
@ -293,6 +303,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.SpecifyKind(DateTime.Parse("2020-01-01 03:00:00"), DateTimeKind.Utc),
ExecutionDuration = 55,
ClientIpAddress = ipAddress,
@ -346,6 +358,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -397,6 +411,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -452,6 +468,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -503,6 +521,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -559,6 +579,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -610,6 +632,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -673,6 +697,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -723,6 +749,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -780,6 +808,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -831,6 +861,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -893,6 +925,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -944,6 +978,8 @@ public abstract class AuditLogRepository_Tests<TStartupModule> : AuditLoggingTes
UserId = userId2,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,

6
modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo/Abp/AuditLogging/AuditStore_Basic_Tests.cs

@ -35,6 +35,8 @@ public abstract class AuditStore_Basic_Tests<TStartupModule> : AuditLoggingTestB
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -90,6 +92,8 @@ public abstract class AuditStore_Basic_Tests<TStartupModule> : AuditLoggingTestB
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,
@ -141,6 +145,8 @@ public abstract class AuditStore_Basic_Tests<TStartupModule> : AuditLoggingTestB
UserId = userId,
ImpersonatorUserId = Guid.NewGuid(),
ImpersonatorTenantId = Guid.NewGuid(),
ImpersonatorTenantName = "default",
ImpersonatorUserName = "admin",
ExecutionTime = DateTime.Today,
ExecutionDuration = 42,
ClientIpAddress = ipAddress,

Loading…
Cancel
Save