Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
        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);
        }