mirror of
https://github.com/bitwarden/server
synced 2025-12-25 12:43:14 +00:00
Revert filescoped (#2227)
* Revert "Add git blame entry (#2226)" This reverts commit239286737d. * Revert "Turn on file scoped namespaces (#2225)" This reverts commit34fb4cca2a.
This commit is contained in:
@@ -2,16 +2,17 @@
|
||||
using Bit.Core.Jobs;
|
||||
using Quartz;
|
||||
|
||||
namespace Bit.Api.Jobs;
|
||||
|
||||
public class AliveJob : BaseJob
|
||||
namespace Bit.Api.Jobs
|
||||
{
|
||||
public AliveJob(ILogger<AliveJob> logger)
|
||||
: base(logger) { }
|
||||
|
||||
protected override Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
public class AliveJob : BaseJob
|
||||
{
|
||||
_logger.LogInformation(Constants.BypassFiltersEventId, null, "It's alive!");
|
||||
return Task.FromResult(0);
|
||||
public AliveJob(ILogger<AliveJob> logger)
|
||||
: base(logger) { }
|
||||
|
||||
protected override Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
_logger.LogInformation(Constants.BypassFiltersEventId, null, "It's alive!");
|
||||
return Task.FromResult(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,22 +2,23 @@
|
||||
using Bit.Core.Services;
|
||||
using Quartz;
|
||||
|
||||
namespace Bit.Api.Jobs;
|
||||
|
||||
public class EmergencyAccessNotificationJob : BaseJob
|
||||
namespace Bit.Api.Jobs
|
||||
{
|
||||
private readonly IServiceScopeFactory _serviceScopeFactory;
|
||||
|
||||
public EmergencyAccessNotificationJob(IServiceScopeFactory serviceScopeFactory, ILogger<EmergencyAccessNotificationJob> logger)
|
||||
: base(logger)
|
||||
public class EmergencyAccessNotificationJob : BaseJob
|
||||
{
|
||||
_serviceScopeFactory = serviceScopeFactory;
|
||||
}
|
||||
private readonly IServiceScopeFactory _serviceScopeFactory;
|
||||
|
||||
protected override async Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
using var scope = _serviceScopeFactory.CreateScope();
|
||||
var emergencyAccessService = scope.ServiceProvider.GetService(typeof(IEmergencyAccessService)) as IEmergencyAccessService;
|
||||
await emergencyAccessService.SendNotificationsAsync();
|
||||
public EmergencyAccessNotificationJob(IServiceScopeFactory serviceScopeFactory, ILogger<EmergencyAccessNotificationJob> logger)
|
||||
: base(logger)
|
||||
{
|
||||
_serviceScopeFactory = serviceScopeFactory;
|
||||
}
|
||||
|
||||
protected override async Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
using var scope = _serviceScopeFactory.CreateScope();
|
||||
var emergencyAccessService = scope.ServiceProvider.GetService(typeof(IEmergencyAccessService)) as IEmergencyAccessService;
|
||||
await emergencyAccessService.SendNotificationsAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,22 +2,23 @@
|
||||
using Bit.Core.Services;
|
||||
using Quartz;
|
||||
|
||||
namespace Bit.Api.Jobs;
|
||||
|
||||
public class EmergencyAccessTimeoutJob : BaseJob
|
||||
namespace Bit.Api.Jobs
|
||||
{
|
||||
private readonly IServiceScopeFactory _serviceScopeFactory;
|
||||
|
||||
public EmergencyAccessTimeoutJob(IServiceScopeFactory serviceScopeFactory, ILogger<EmergencyAccessNotificationJob> logger)
|
||||
: base(logger)
|
||||
public class EmergencyAccessTimeoutJob : BaseJob
|
||||
{
|
||||
_serviceScopeFactory = serviceScopeFactory;
|
||||
}
|
||||
private readonly IServiceScopeFactory _serviceScopeFactory;
|
||||
|
||||
protected override async Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
using var scope = _serviceScopeFactory.CreateScope();
|
||||
var emergencyAccessService = scope.ServiceProvider.GetService(typeof(IEmergencyAccessService)) as IEmergencyAccessService;
|
||||
await emergencyAccessService.HandleTimedOutRequestsAsync();
|
||||
public EmergencyAccessTimeoutJob(IServiceScopeFactory serviceScopeFactory, ILogger<EmergencyAccessNotificationJob> logger)
|
||||
: base(logger)
|
||||
{
|
||||
_serviceScopeFactory = serviceScopeFactory;
|
||||
}
|
||||
|
||||
protected override async Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
using var scope = _serviceScopeFactory.CreateScope();
|
||||
var emergencyAccessService = scope.ServiceProvider.GetService(typeof(IEmergencyAccessService)) as IEmergencyAccessService;
|
||||
await emergencyAccessService.HandleTimedOutRequestsAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,81 +2,82 @@
|
||||
using Bit.Core.Settings;
|
||||
using Quartz;
|
||||
|
||||
namespace Bit.Api.Jobs;
|
||||
|
||||
public class JobsHostedService : BaseJobsHostedService
|
||||
namespace Bit.Api.Jobs
|
||||
{
|
||||
public JobsHostedService(
|
||||
GlobalSettings globalSettings,
|
||||
IServiceProvider serviceProvider,
|
||||
ILogger<JobsHostedService> logger,
|
||||
ILogger<JobListener> listenerLogger)
|
||||
: base(globalSettings, serviceProvider, logger, listenerLogger) { }
|
||||
|
||||
public override async Task StartAsync(CancellationToken cancellationToken)
|
||||
public class JobsHostedService : BaseJobsHostedService
|
||||
{
|
||||
var everyTopOfTheHourTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EveryTopOfTheHourTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 0 * * * ?")
|
||||
.Build();
|
||||
var emergencyAccessNotificationTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EmergencyAccessNotificationTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 0 * * * ?")
|
||||
.Build();
|
||||
var emergencyAccessTimeoutTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EmergencyAccessTimeoutTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 0 * * * ?")
|
||||
.Build();
|
||||
var everyTopOfTheSixthHourTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EveryTopOfTheSixthHourTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 0 */6 * * ?")
|
||||
.Build();
|
||||
var everyTwelfthHourAndThirtyMinutesTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EveryTwelfthHourAndThirtyMinutesTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 30 */12 * * ?")
|
||||
.Build();
|
||||
var randomDailySponsorshipSyncTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("RandomDailySponsorshipSyncTrigger")
|
||||
.StartAt(DateBuilder.FutureDate(new Random().Next(24), IntervalUnit.Hour))
|
||||
.WithSimpleSchedule(x => x
|
||||
.WithIntervalInHours(24)
|
||||
.RepeatForever())
|
||||
.Build();
|
||||
public JobsHostedService(
|
||||
GlobalSettings globalSettings,
|
||||
IServiceProvider serviceProvider,
|
||||
ILogger<JobsHostedService> logger,
|
||||
ILogger<JobListener> listenerLogger)
|
||||
: base(globalSettings, serviceProvider, logger, listenerLogger) { }
|
||||
|
||||
var jobs = new List<Tuple<Type, ITrigger>>
|
||||
public override async Task StartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
new Tuple<Type, ITrigger>(typeof(AliveJob), everyTopOfTheHourTrigger),
|
||||
new Tuple<Type, ITrigger>(typeof(EmergencyAccessNotificationJob), emergencyAccessNotificationTrigger),
|
||||
new Tuple<Type, ITrigger>(typeof(EmergencyAccessTimeoutJob), emergencyAccessTimeoutTrigger),
|
||||
new Tuple<Type, ITrigger>(typeof(ValidateUsersJob), everyTopOfTheSixthHourTrigger),
|
||||
new Tuple<Type, ITrigger>(typeof(ValidateOrganizationsJob), everyTwelfthHourAndThirtyMinutesTrigger)
|
||||
};
|
||||
var everyTopOfTheHourTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EveryTopOfTheHourTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 0 * * * ?")
|
||||
.Build();
|
||||
var emergencyAccessNotificationTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EmergencyAccessNotificationTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 0 * * * ?")
|
||||
.Build();
|
||||
var emergencyAccessTimeoutTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EmergencyAccessTimeoutTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 0 * * * ?")
|
||||
.Build();
|
||||
var everyTopOfTheSixthHourTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EveryTopOfTheSixthHourTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 0 */6 * * ?")
|
||||
.Build();
|
||||
var everyTwelfthHourAndThirtyMinutesTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("EveryTwelfthHourAndThirtyMinutesTrigger")
|
||||
.StartNow()
|
||||
.WithCronSchedule("0 30 */12 * * ?")
|
||||
.Build();
|
||||
var randomDailySponsorshipSyncTrigger = TriggerBuilder.Create()
|
||||
.WithIdentity("RandomDailySponsorshipSyncTrigger")
|
||||
.StartAt(DateBuilder.FutureDate(new Random().Next(24), IntervalUnit.Hour))
|
||||
.WithSimpleSchedule(x => x
|
||||
.WithIntervalInHours(24)
|
||||
.RepeatForever())
|
||||
.Build();
|
||||
|
||||
if (_globalSettings.SelfHosted && _globalSettings.EnableCloudCommunication)
|
||||
{
|
||||
jobs.Add(new Tuple<Type, ITrigger>(typeof(SelfHostedSponsorshipSyncJob), randomDailySponsorshipSyncTrigger));
|
||||
var jobs = new List<Tuple<Type, ITrigger>>
|
||||
{
|
||||
new Tuple<Type, ITrigger>(typeof(AliveJob), everyTopOfTheHourTrigger),
|
||||
new Tuple<Type, ITrigger>(typeof(EmergencyAccessNotificationJob), emergencyAccessNotificationTrigger),
|
||||
new Tuple<Type, ITrigger>(typeof(EmergencyAccessTimeoutJob), emergencyAccessTimeoutTrigger),
|
||||
new Tuple<Type, ITrigger>(typeof(ValidateUsersJob), everyTopOfTheSixthHourTrigger),
|
||||
new Tuple<Type, ITrigger>(typeof(ValidateOrganizationsJob), everyTwelfthHourAndThirtyMinutesTrigger)
|
||||
};
|
||||
|
||||
if (_globalSettings.SelfHosted && _globalSettings.EnableCloudCommunication)
|
||||
{
|
||||
jobs.Add(new Tuple<Type, ITrigger>(typeof(SelfHostedSponsorshipSyncJob), randomDailySponsorshipSyncTrigger));
|
||||
}
|
||||
|
||||
Jobs = jobs;
|
||||
|
||||
await base.StartAsync(cancellationToken);
|
||||
}
|
||||
|
||||
Jobs = jobs;
|
||||
|
||||
await base.StartAsync(cancellationToken);
|
||||
}
|
||||
|
||||
public static void AddJobsServices(IServiceCollection services, bool selfHosted)
|
||||
{
|
||||
if (selfHosted)
|
||||
public static void AddJobsServices(IServiceCollection services, bool selfHosted)
|
||||
{
|
||||
services.AddTransient<SelfHostedSponsorshipSyncJob>();
|
||||
if (selfHosted)
|
||||
{
|
||||
services.AddTransient<SelfHostedSponsorshipSyncJob>();
|
||||
}
|
||||
services.AddTransient<AliveJob>();
|
||||
services.AddTransient<EmergencyAccessNotificationJob>();
|
||||
services.AddTransient<EmergencyAccessTimeoutJob>();
|
||||
services.AddTransient<ValidateUsersJob>();
|
||||
services.AddTransient<ValidateOrganizationsJob>();
|
||||
}
|
||||
services.AddTransient<AliveJob>();
|
||||
services.AddTransient<EmergencyAccessNotificationJob>();
|
||||
services.AddTransient<EmergencyAccessTimeoutJob>();
|
||||
services.AddTransient<ValidateUsersJob>();
|
||||
services.AddTransient<ValidateOrganizationsJob>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,58 +7,59 @@ using Bit.Core.Services;
|
||||
using Bit.Core.Settings;
|
||||
using Quartz;
|
||||
|
||||
namespace Bit.Api.Jobs;
|
||||
|
||||
public class SelfHostedSponsorshipSyncJob : BaseJob
|
||||
namespace Bit.Api.Jobs
|
||||
{
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private IOrganizationRepository _organizationRepository;
|
||||
private IOrganizationConnectionRepository _organizationConnectionRepository;
|
||||
private readonly ILicensingService _licensingService;
|
||||
private GlobalSettings _globalSettings;
|
||||
|
||||
public SelfHostedSponsorshipSyncJob(
|
||||
IServiceProvider serviceProvider,
|
||||
IOrganizationRepository organizationRepository,
|
||||
IOrganizationConnectionRepository organizationConnectionRepository,
|
||||
ILicensingService licensingService,
|
||||
ILogger<SelfHostedSponsorshipSyncJob> logger,
|
||||
GlobalSettings globalSettings)
|
||||
: base(logger)
|
||||
public class SelfHostedSponsorshipSyncJob : BaseJob
|
||||
{
|
||||
_serviceProvider = serviceProvider;
|
||||
_organizationRepository = organizationRepository;
|
||||
_organizationConnectionRepository = organizationConnectionRepository;
|
||||
_licensingService = licensingService;
|
||||
_globalSettings = globalSettings;
|
||||
}
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private IOrganizationRepository _organizationRepository;
|
||||
private IOrganizationConnectionRepository _organizationConnectionRepository;
|
||||
private readonly ILicensingService _licensingService;
|
||||
private GlobalSettings _globalSettings;
|
||||
|
||||
protected override async Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
if (!_globalSettings.EnableCloudCommunication)
|
||||
public SelfHostedSponsorshipSyncJob(
|
||||
IServiceProvider serviceProvider,
|
||||
IOrganizationRepository organizationRepository,
|
||||
IOrganizationConnectionRepository organizationConnectionRepository,
|
||||
ILicensingService licensingService,
|
||||
ILogger<SelfHostedSponsorshipSyncJob> logger,
|
||||
GlobalSettings globalSettings)
|
||||
: base(logger)
|
||||
{
|
||||
_logger.LogInformation("Skipping Organization sync with cloud - Cloud communication is disabled in global settings");
|
||||
return;
|
||||
_serviceProvider = serviceProvider;
|
||||
_organizationRepository = organizationRepository;
|
||||
_organizationConnectionRepository = organizationConnectionRepository;
|
||||
_licensingService = licensingService;
|
||||
_globalSettings = globalSettings;
|
||||
}
|
||||
|
||||
var organizations = await _organizationRepository.GetManyByEnabledAsync();
|
||||
|
||||
using (var scope = _serviceProvider.CreateScope())
|
||||
protected override async Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
var syncCommand = scope.ServiceProvider.GetRequiredService<ISelfHostedSyncSponsorshipsCommand>();
|
||||
foreach (var org in organizations)
|
||||
if (!_globalSettings.EnableCloudCommunication)
|
||||
{
|
||||
var connection = (await _organizationConnectionRepository.GetEnabledByOrganizationIdTypeAsync(org.Id, OrganizationConnectionType.CloudBillingSync)).FirstOrDefault();
|
||||
if (connection != null)
|
||||
_logger.LogInformation("Skipping Organization sync with cloud - Cloud communication is disabled in global settings");
|
||||
return;
|
||||
}
|
||||
|
||||
var organizations = await _organizationRepository.GetManyByEnabledAsync();
|
||||
|
||||
using (var scope = _serviceProvider.CreateScope())
|
||||
{
|
||||
var syncCommand = scope.ServiceProvider.GetRequiredService<ISelfHostedSyncSponsorshipsCommand>();
|
||||
foreach (var org in organizations)
|
||||
{
|
||||
try
|
||||
var connection = (await _organizationConnectionRepository.GetEnabledByOrganizationIdTypeAsync(org.Id, OrganizationConnectionType.CloudBillingSync)).FirstOrDefault();
|
||||
if (connection != null)
|
||||
{
|
||||
var config = connection.GetConfig<BillingSyncConfig>();
|
||||
await syncCommand.SyncOrganization(org.Id, config.CloudOrganizationId, connection);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, $"Sponsorship sync for organization {org.Name} Failed");
|
||||
try
|
||||
{
|
||||
var config = connection.GetConfig<BillingSyncConfig>();
|
||||
await syncCommand.SyncOrganization(org.Id, config.CloudOrganizationId, connection);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, $"Sponsorship sync for organization {org.Name} Failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,22 +2,23 @@
|
||||
using Bit.Core.Services;
|
||||
using Quartz;
|
||||
|
||||
namespace Bit.Api.Jobs;
|
||||
|
||||
public class ValidateOrganizationsJob : BaseJob
|
||||
namespace Bit.Api.Jobs
|
||||
{
|
||||
private readonly ILicensingService _licensingService;
|
||||
|
||||
public ValidateOrganizationsJob(
|
||||
ILicensingService licensingService,
|
||||
ILogger<ValidateOrganizationsJob> logger)
|
||||
: base(logger)
|
||||
public class ValidateOrganizationsJob : BaseJob
|
||||
{
|
||||
_licensingService = licensingService;
|
||||
}
|
||||
private readonly ILicensingService _licensingService;
|
||||
|
||||
protected async override Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
await _licensingService.ValidateOrganizationsAsync();
|
||||
public ValidateOrganizationsJob(
|
||||
ILicensingService licensingService,
|
||||
ILogger<ValidateOrganizationsJob> logger)
|
||||
: base(logger)
|
||||
{
|
||||
_licensingService = licensingService;
|
||||
}
|
||||
|
||||
protected async override Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
await _licensingService.ValidateOrganizationsAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,22 +2,23 @@
|
||||
using Bit.Core.Services;
|
||||
using Quartz;
|
||||
|
||||
namespace Bit.Api.Jobs;
|
||||
|
||||
public class ValidateUsersJob : BaseJob
|
||||
namespace Bit.Api.Jobs
|
||||
{
|
||||
private readonly ILicensingService _licensingService;
|
||||
|
||||
public ValidateUsersJob(
|
||||
ILicensingService licensingService,
|
||||
ILogger<ValidateUsersJob> logger)
|
||||
: base(logger)
|
||||
public class ValidateUsersJob : BaseJob
|
||||
{
|
||||
_licensingService = licensingService;
|
||||
}
|
||||
private readonly ILicensingService _licensingService;
|
||||
|
||||
protected async override Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
await _licensingService.ValidateUsersAsync();
|
||||
public ValidateUsersJob(
|
||||
ILicensingService licensingService,
|
||||
ILogger<ValidateUsersJob> logger)
|
||||
: base(logger)
|
||||
{
|
||||
_licensingService = licensingService;
|
||||
}
|
||||
|
||||
protected async override Task ExecuteJobAsync(IJobExecutionContext context)
|
||||
{
|
||||
await _licensingService.ValidateUsersAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user