private async Task <bool> IsEventEnabledAsync(AuditTrailEventDescriptor eventDescriptor) { if (eventDescriptor.IsMandatory) { return(true); } var auditTrailSettings = await GetAuditTrailSettingsAsync(); var auditTrailEventSetting = auditTrailSettings.EventSettings.FirstOrDefault( eventSetting => eventSetting.EventName == eventDescriptor.FullEventName); return(auditTrailEventSetting != null ? auditTrailEventSetting.IsEnabled : eventDescriptor.IsEnabledByDefault); }
private bool IsEventEnabled(AuditTrailEventDescriptor eventDescriptor) { if (eventDescriptor.IsMandatory) { return(true); } var settingsDictionary = _cacheManager.Get("AuditTrail.EventSettings", context => { context.Monitor(_signals.When("AuditTrail.EventSettings")); return(_siteService.GetSiteSettings().As <AuditTrailSettingsPart>().EventSettings.ToDictionary(x => x.EventName)); }); var setting = settingsDictionary.ContainsKey(eventDescriptor.Event) ? settingsDictionary[eventDescriptor.Event] : default(AuditTrailEventSetting); return(setting != null ? setting.IsEnabled : eventDescriptor.IsEnabledByDefault); }
private async Task <bool> IsEventEnabledAsync(AuditTrailEventDescriptor descriptor) { if (descriptor.IsMandatory) { return(true); } var settings = await GetAuditTrailSettingsAsync(); var eventSettings = settings.Categories .FirstOrDefault(category => category.Name == descriptor.Category)?.Events .FirstOrDefault(settings => settings.Name == descriptor.Name); return(eventSettings?.IsEnabled ?? descriptor.IsEnabledByDefault); }
public ActionResult Index(PagerParameters pagerParameters, AuditTrailOrderBy?orderBy = null) { if (!_authorizer.Authorize(Permissions.ViewAuditTrail)) { return(new HttpUnauthorizedResult()); } var pager = new Pager(_services.WorkContext.CurrentSite, pagerParameters); var filters = Filters.From(Request.QueryString, this); var pageOfData = _auditTrailManager.GetRecords(pager.Page, pager.PageSize, filters, orderBy ?? AuditTrailOrderBy.DateDescending); // If there's a filter validation error, clear the results. if (!ModelState.IsValid) { pageOfData = new PageOfItems <AuditTrailEventRecord>(Enumerable.Empty <AuditTrailEventRecord>()); } var pagerShape = New.Pager(pager).TotalItemCount(pageOfData.TotalItemCount); var filterDisplay = _auditTrailManager.BuildFilterDisplay(filters); var eventDescriptorsQuery = from c in _auditTrailManager.DescribeCategories() from e in c.Events select e; var eventDescriptors = eventDescriptorsQuery.ToDictionary(x => x.Event); var recordViewModelsQuery = from record in pageOfData let descriptor = eventDescriptors.ContainsKey(record.FullEventName) ? eventDescriptors[record.FullEventName] : AuditTrailEventDescriptor.Basic(record) select new AuditTrailEventSummaryViewModel { Record = record, EventDescriptor = descriptor, CategoryDescriptor = descriptor.CategoryDescriptor, SummaryShape = _displayBuilder.BuildDisplay(record, "SummaryAdmin"), ActionsShape = _displayBuilder.BuildActions(record, "SummaryAdmin"), }; var viewModel = new AuditTrailViewModel { Records = recordViewModelsQuery.ToArray(), Pager = pagerShape, OrderBy = orderBy ?? AuditTrailOrderBy.DateDescending, FilterDisplay = filterDisplay }; return(View(viewModel)); }
public AuditTrailEventDescriptor DescribeEvent(AuditTrailEventRecord record) { return(DescribeEvent(record.FullEventName) ?? AuditTrailEventDescriptor.Basic(record)); }
/// <summary> /// We're creating settings on the fly so that when the user updates the settings the first time, we won't log a massive amount of event settings that have changed. /// </summary> private AuditTrailEventSetting GetOrCreate(ICollection <AuditTrailEventSetting> settings, AuditTrailEventDescriptor descriptor) { var setting = settings.FirstOrDefault(x => x.EventName == descriptor.Event); if (setting == null) { setting = new AuditTrailEventSetting { EventName = descriptor.Event, IsEnabled = descriptor.IsMandatory || descriptor.IsEnabledByDefault }; settings.Add(setting); } return(setting); }
private static void BuildSummaryViewModel(AuditTrailContentEventViewModel m, AuditTrailEvent model, AuditTrailContentEvent contentEvent, AuditTrailEventDescriptor descriptor, string latestVersionId) { m.AuditTrailEvent = model; m.Descriptor = descriptor; m.Name = contentEvent.Name; m.ContentItem = contentEvent.ContentItem; m.VersionNumber = contentEvent.VersionNumber; m.Comment = contentEvent.Comment; m.LatestVersionId = latestVersionId; m.ContentEvent = contentEvent; }
public static void BuildViewModel(AuditTrailEvent auditTrailEvent, AuditTrailEventViewModel model, AuditTrailEventDescriptor descriptor) { model.AuditTrailEvent = auditTrailEvent; model.Descriptor = descriptor; }
public async Task <ActionResult> Index(PagerParameters pagerParameters, AuditTrailOrderBy?orderBy = null) { if (!await _authorizationService.AuthorizeAsync(User, AuditTrailPermissions.ViewAuditTrail)) { return(Forbid()); } var siteSettings = await _siteService.GetSiteSettingsAsync(); var pager = new Pager(pagerParameters, siteSettings.PageSize); var filters = Filters.From(QueryHelpers.ParseQuery(Request.QueryString.Value), _updateModelAccessor.ModelUpdater); var searchResult = await _auditTrailManager.GetAuditTrailEventsAsync(pager.Page, pager.PageSize, filters, orderBy ?? AuditTrailOrderBy.DateDescending); if (!_updateModelAccessor.ModelUpdater.ModelState.IsValid) { searchResult.AuditTrailEvents = Enumerable.Empty <AuditTrailEvent>(); } var pagerShape = (await _shapeFactory.New.Pager(pager)).TotalItemCount(searchResult.TotalCount); var eventDescriptors = _auditTrailManager.DescribeCategories() .SelectMany(categoryDescriptor => categoryDescriptor.Events) .ToDictionary(eventDescriptor => eventDescriptor.FullEventName); var auditTrailEventsSummaryViewModel = searchResult.AuditTrailEvents.Select(auditTrailEvent => { var eventDescriptor = eventDescriptors.ContainsKey(auditTrailEvent.FullEventName) ? eventDescriptors[auditTrailEvent.FullEventName] : AuditTrailEventDescriptor.Basic(auditTrailEvent); return(new AuditTrailEventSummaryViewModel { AuditTrailEvent = auditTrailEvent, EventDescriptor = eventDescriptor, CategoryDescriptor = eventDescriptor.CategoryDescriptor, AdditionalColumnsShapes = _auditTrailEventDisplayManager.BuildAdditionalColumnsShapesAsync(auditTrailEvent), SummaryShape = _auditTrailEventDisplayManager.BuildDisplayAsync(auditTrailEvent, "SummaryAdmin"), ActionsShape = _auditTrailEventDisplayManager.BuildActionsAsync(auditTrailEvent, "SummaryAdmin") }); }); return(View(new AuditTrailViewModel { AuditTrailEvents = auditTrailEventsSummaryViewModel, AdditionalColumnNames = await _auditTrailEventDisplayManager.BuildAdditionalColumnNamesShapesAsync(), Pager = pagerShape, OrderBy = orderBy ?? AuditTrailOrderBy.DateDescending, FilterDisplay = await _auditTrailEventDisplayManager.BuildFilterDisplayAsync(filters) })); }
public AuditTrailEventDescriptor DescribeEvent(AuditTrailEvent auditTrailEvent) => DescribeEvent(auditTrailEvent.Name, auditTrailEvent.Category) ?? AuditTrailEventDescriptor.Default(auditTrailEvent);