Browse Source

Merge pull request #13985 from abpframework/migrator-dynamic-permissions-features

Disable dynamic permissions and features during migration.
pull/14019/head
Halil İbrahim Kalkan 4 years ago
committed by GitHub
parent
commit
d5b12eda01
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs
  2. 6
      framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironment.cs
  3. 38
      framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs
  4. 10
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs
  5. 13
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs
  6. 6
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs
  7. 7
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs
  8. 5
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs
  9. 6
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs
  10. 6
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs
  11. 7
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs
  12. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs
  13. 6
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs

17
framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs

@ -2,6 +2,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Data;
using Volo.Abp.DistributedLocking;
using Volo.Abp.Guids;
using Volo.Abp.Modularity;
@ -19,10 +20,20 @@ namespace Volo.Abp.BackgroundJobs;
)]
public class AbpBackgroundJobsModule : AbpModule
{
public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
public override void ConfigureServices(ServiceConfigurationContext context)
{
var options = context.ServiceProvider.GetRequiredService<IOptions<AbpBackgroundJobOptions>>().Value;
if (options.IsJobExecutionEnabled)
if (context.Services.IsDataMigrationEnvironment())
{
Configure<AbpBackgroundJobOptions>(options =>
{
options.IsJobExecutionEnabled = false;
});
}
}
public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
{
if (context.ServiceProvider.GetRequiredService<IOptions<AbpBackgroundJobOptions>>().Value.IsJobExecutionEnabled)
{
await context.AddBackgroundWorkerAsync<IBackgroundJobWorker>();
}

6
framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironment.cs

@ -0,0 +1,6 @@
namespace Volo.Abp.Data;
public class AbpDataMigrationEnvironment
{
}

38
framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs

@ -0,0 +1,38 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Data;
public static class AbpDataMigrationEnvironmentExtensions
{
public static void AddDataMigrationEnvironment(this AbpApplicationCreationOptions options, AbpDataMigrationEnvironment environment = null)
{
options.Services.AddDataMigrationEnvironment(environment ?? new AbpDataMigrationEnvironment());
}
public static void AddDataMigrationEnvironment(this IServiceCollection services, AbpDataMigrationEnvironment environment = null)
{
services.AddObjectAccessor<AbpDataMigrationEnvironment>(environment ?? new AbpDataMigrationEnvironment());
}
public static AbpDataMigrationEnvironment GetDataMigrationEnvironment(this IServiceCollection services)
{
return services.GetObjectOrNull<IObjectAccessor<AbpDataMigrationEnvironment>>()?.Value;
}
public static bool IsDataMigrationEnvironment(this IServiceCollection services)
{
return services.GetDataMigrationEnvironment() != null;
}
public static AbpDataMigrationEnvironment GetDataMigrationEnvironment(this IServiceProvider serviceProvider)
{
return serviceProvider.GetService<IObjectAccessor<AbpDataMigrationEnvironment>>()?.Value;
}
public static bool IsDataMigrationEnvironment(this IServiceProvider serviceProvider)
{
return serviceProvider.GetDataMigrationEnvironment() != null;
}
}

10
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs

@ -7,6 +7,7 @@ using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Polly;
using Volo.Abp.Caching;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.FeatureManagement.Localization;
using Volo.Abp.Features;
@ -39,6 +40,15 @@ public class AbpFeatureManagementDomainModule : AbpModule
{
options.MapCodeNamespace("AbpFeatureManagement", typeof(AbpFeatureManagementResource));
});
if (context.Services.IsDataMigrationEnvironment())
{
Configure<FeatureManagementOptions>(options =>
{
options.SaveStaticFeaturesToDatabase = false;
options.IsDynamicFeatureStoreEnabled = false;
});
}
}
private readonly CancellationTokenSource _cancellationTokenSource = new();

13
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs

@ -9,6 +9,7 @@ using Polly;
using Volo.Abp.Authorization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Caching;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain;
using Volo.Abp.Json;
@ -26,6 +27,18 @@ public class AbpPermissionManagementDomainModule : AbpModule
{
private readonly CancellationTokenSource _cancellationTokenSource = new();
public override void ConfigureServices(ServiceConfigurationContext context)
{
if (context.Services.IsDataMigrationEnvironment())
{
Configure<PermissionManagementOptions>(options =>
{
options.SaveStaticPermissionsToDatabase = false;
options.IsDynamicPermissionStoreEnabled = false;
});
}
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
AsyncHelper.RunSync(() => OnApplicationInitializationAsync(context));

6
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs

@ -1,7 +1,7 @@
using MyCompanyName.MyProjectName.Blazor.Server;
using MyCompanyName.MyProjectName.Data;
using Serilog;
using Serilog.Events;
using Volo.Abp.Data;
namespace MyCompanyName.MyProjectName;
@ -36,6 +36,10 @@ public class Program
.UseAutofac()
.UseSerilog();
await builder.AddApplicationAsync<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.AddDataMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

7
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs

@ -1,8 +1,7 @@
using System;
using MyCompanyName.MyProjectName.Blazor.Server;
using MyCompanyName.MyProjectName.Data;
using Serilog;
using Serilog.Events;
using Volo.Abp.Data;
namespace MyCompanyName.MyProjectName;
@ -42,6 +41,10 @@ public class Program
.UseAutofac()
.UseSerilog();
await builder.AddApplicationAsync<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.AddDataMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

5
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs

@ -1,6 +1,7 @@
using MyCompanyName.MyProjectName.Data;
using Serilog;
using Serilog.Events;
using Volo.Abp.Data;
namespace MyCompanyName.MyProjectName;
@ -35,6 +36,10 @@ public class Program
.UseAutofac()
.UseSerilog();
await builder.AddApplicationAsync<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.AddDataMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

6
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs

@ -1,7 +1,7 @@
using System;
using MyCompanyName.MyProjectName.Data;
using Serilog;
using Serilog.Events;
using Volo.Abp.Data;
namespace MyCompanyName.MyProjectName;
@ -41,6 +41,10 @@ public class Program
.UseAutofac()
.UseSerilog();
await builder.AddApplicationAsync<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.AddDataMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

6
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs

@ -1,7 +1,7 @@
using MyCompanyName.MyProjectName.Data;
using Serilog;
using Serilog.Events;
using Volo.Abp.Data;
namespace MyCompanyName.MyProjectName;
@ -36,6 +36,10 @@ public class Program
.UseAutofac()
.UseSerilog();
await builder.AddApplicationAsync<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.AddDataMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

7
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs

@ -1,8 +1,7 @@
using System;
using MyCompanyName.MyProjectName.Data;
using Serilog;
using Serilog.Events;
using Volo.Abp.Data;
namespace MyCompanyName.MyProjectName;
@ -42,6 +41,10 @@ public class Program
.UseAutofac()
.UseSerilog();
await builder.AddApplicationAsync<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.AddDataMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs

@ -6,6 +6,7 @@ using Microsoft.Extensions.Hosting;
using MyCompanyName.MyProjectName.Data;
using Serilog;
using Volo.Abp;
using Volo.Abp.Data;
namespace MyCompanyName.MyProjectName.DbMigrator;
@ -27,6 +28,7 @@ public class DbMigratorHostedService : IHostedService
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
options.Services.AddLogging(c => c.AddSerilog());
options.AddDataMigrationEnvironment();
}))
{
await application.InitializeAsync();

6
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs

@ -1,6 +1,5 @@
using MyCompanyName.MyProjectName.EntityFrameworkCore;
using Volo.Abp.Autofac;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.Modularity;
namespace MyCompanyName.MyProjectName.DbMigrator;
@ -12,8 +11,5 @@ namespace MyCompanyName.MyProjectName.DbMigrator;
)]
public class MyProjectNameDbMigratorModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpBackgroundJobOptions>(options => options.IsJobExecutionEnabled = false);
}
}

Loading…
Cancel
Save