public SecurityController( PermissionContext permissionContext, CoreBaseSettings coreBaseSettings, TenantExtra tenantExtra, TenantManager tenantManager, MessageService messageService, LoginEventsRepository loginEventsRepository, AuditEventsRepository auditEventsRepository, AuditReportCreator auditReportCreator, SettingsManager settingsManager) { PermissionContext = permissionContext; CoreBaseSettings = coreBaseSettings; TenantExtra = tenantExtra; TenantManager = tenantManager; MessageService = messageService; LoginEventsRepository = loginEventsRepository; AuditEventsRepository = auditEventsRepository; AuditReportCreator = auditReportCreator; SettingsManager = settingsManager; }
public object CreateLoginHistoryReport() { PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); var tenantId = TenantManager.GetCurrentTenant().TenantId; if (!SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()) || CoreBaseSettings.Standalone && !TenantExtra.GetTenantQuota().Audit) { throw new BillingException(Resource.ErrorNotAllowedOption, "Audit"); } var settings = SettingsManager.LoadForTenant <TenantAuditSettings>(TenantManager.GetCurrentTenant().TenantId); var to = DateTime.UtcNow; var from = to.Subtract(TimeSpan.FromDays(settings.LoginHistoryLifeTime)); var reportName = string.Format(AuditReportResource.LoginHistoryReportName + ".csv", from.ToString("MM.dd.yyyy"), to.ToString("MM.dd.yyyy")); var events = LoginEventsRepository.Get(tenantId, from, to); var result = AuditReportCreator.CreateCsvReport(events, reportName); MessageService.Send(MessageAction.LoginHistoryReportDownloaded); return(result); }