Exemplo n.º 1
0
    private async Task <bool> ShouldWriteAuditLogAsync(
        IAbpMethodInvocation invocation,
        AuditLogInfo auditLogInfo,
        AbpAuditingOptions options,
        ICurrentUser currentUser,
        bool hasError)
    {
        foreach (var selector in options.AlwaysLogSelectors)
        {
            if (await selector(auditLogInfo))
            {
                return(true);
            }
        }

        if (options.AlwaysLogOnException && hasError)
        {
            return(true);
        }

        if (!options.IsEnabledForAnonymousUsers && !currentUser.IsAuthenticated)
        {
            return(false);
        }

        if (!options.IsEnabledForGetRequests &&
            invocation.Method.Name.StartsWith("Get", StringComparison.OrdinalIgnoreCase))
        {
            return(false);
        }

        return(true);
    }
Exemplo n.º 2
0
    private async Task ProcessWithNewAuditingScopeAsync(
        IAbpMethodInvocation invocation,
        AbpAuditingOptions options,
        ICurrentUser currentUser,
        IAuditingManager auditingManager,
        IAuditingHelper auditingHelper)
    {
        var hasError = false;

        using (var saveHandle = auditingManager.BeginScope())
        {
            try
            {
                await ProceedByLoggingAsync(invocation, auditingHelper, auditingManager.Current);

                Debug.Assert(auditingManager.Current != null);
                if (auditingManager.Current.Log.Exceptions.Any())
                {
                    hasError = true;
                }
            }
            catch (Exception)
            {
                hasError = true;
                throw;
            }
            finally
            {
                if (ShouldWriteAuditLog(invocation, options, currentUser, hasError))
                {
                    await saveHandle.SaveAsync();
                }
            }
        }
    }
Exemplo n.º 3
0
        public AuditingStore(
            IAuditLogRepository auditLogRepository,
            IGuidGenerator guidGenerator,
            IUnitOfWorkManager unitOfWorkManager,
            IOptions <AbpAuditingOptions> options)
        {
            AuditLogRepository = auditLogRepository;
            GuidGenerator      = guidGenerator;
            UnitOfWorkManager  = unitOfWorkManager;
            Options            = options.Value;

            Logger = NullLogger <AuditingStore> .Instance;
        }
Exemplo n.º 4
0
        public EntityHistoryHelper(
            IAuditingStore auditingStore,
            IOptions <AbpAuditingOptions> options,
            IClock clock,
            IJsonSerializer jsonSerializer)
        {
            _clock         = clock;
            AuditingStore  = auditingStore;
            JsonSerializer = jsonSerializer;
            Options        = options.Value;

            Logger = NullLogger <EntityHistoryHelper> .Instance;
        }
Exemplo n.º 5
0
    protected virtual bool ShouldIntercept(IAbpMethodInvocation invocation,
                                           AbpAuditingOptions options,
                                           IAuditingHelper auditingHelper)
    {
        if (!options.IsEnabled)
        {
            return(false);
        }

        if (AbpCrossCuttingConcerns.IsApplied(invocation.TargetObject, AbpCrossCuttingConcerns.Auditing))
        {
            return(false);
        }

        if (!auditingHelper.ShouldSaveAudit(invocation.Method))
        {
            return(false);
        }

        return(true);
    }
Exemplo n.º 6
0
    private bool ShouldWriteAuditLog(
        IAbpMethodInvocation invocation,
        AbpAuditingOptions options,
        ICurrentUser currentUser,
        bool hasError)
    {
        if (options.AlwaysLogOnException && hasError)
        {
            return(true);
        }

        if (!options.IsEnabledForAnonymousUsers && !currentUser.IsAuthenticated)
        {
            return(false);
        }

        if (!options.IsEnabledForGetRequests &&
            invocation.Method.Name.StartsWith("Get", StringComparison.OrdinalIgnoreCase))
        {
            return(false);
        }

        return(true);
    }
Exemplo n.º 7
0
    public AuditingHelper(
        IAuditSerializer auditSerializer,
        IOptions <AbpAuditingOptions> options,
        ICurrentUser currentUser,
        ICurrentTenant currentTenant,
        ICurrentClient currentClient,
        IClock clock,
        IAuditingStore auditingStore,
        ILogger <AuditingHelper> logger,
        IServiceProvider serviceProvider,
        ICorrelationIdProvider correlationIdProvider)
    {
        Options         = options.Value;
        AuditSerializer = auditSerializer;
        CurrentUser     = currentUser;
        CurrentTenant   = currentTenant;
        CurrentClient   = currentClient;
        Clock           = clock;
        AuditingStore   = auditingStore;

        Logger                = logger;
        ServiceProvider       = serviceProvider;
        CorrelationIdProvider = correlationIdProvider;
    }
Exemplo n.º 8
0
 public IActionResult AuditActivateFailed([FromServices] AbpAuditingOptions options)
 {
     return(Ok());
 }
Exemplo n.º 9
0
 public AuditTestController(IOptions <AbpAuditingOptions> options)
 {
     _options = options.Value;
 }
Exemplo n.º 10
0
 public IActionResult OnGetAuditActivateFailed([FromServices] AbpAuditingOptions options)
 {
     return(new OkResult());
 }
Exemplo n.º 11
0
 public AuditTestPage(IOptions <AbpAuditingOptions> options)
 {
     _options = options.Value;
 }
Exemplo n.º 12
0
 public AuditTestPage_Tests()
 {
     _options       = ServiceProvider.GetRequiredService <IOptions <AbpAuditingOptions> >().Value;
     _auditingStore = ServiceProvider.GetRequiredService <IAuditingStore>();
 }
Exemplo n.º 13
0
 public JsonNetAuditSerializer(IOptions <AbpAuditingOptions> options)
 {
     Options = options.Value;
 }
Exemplo n.º 14
0
 public AbpAuditActionFilter(IOptions <AbpAuditingOptions> options, IAuditingHelper auditingHelper, IAuditingManager auditingManager)
 {
     Options          = options.Value;
     _auditingHelper  = auditingHelper;
     _auditingManager = auditingManager;
 }