Compare commits
	
		
			21 Commits
		
	
	
		
			1b82fc3545
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ea3a825825 | |||
| 90f0040f63 | |||
| d4e54f5709 | |||
| 8d9e7658d7 | |||
| d340be4e2c | |||
| 4afd7924b7 | |||
| 30e5e6a4dc | |||
| df78f842f3 | |||
| 5138daebea | |||
| bbead3a651 | |||
| 802624e7ea | |||
| b2bccc34f5 | |||
| f060641e97 | |||
| e7aaacc410 | |||
| 75cd096b60 | |||
| e4629b1771 | |||
| b699762c1b | |||
| 931ecbd4bc | |||
| 79171b51b2 | |||
| 29201fa84e | |||
| 7171ac44ac | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -265,3 +265,4 @@ src/KonSoft.Admin.Blazor.Server.Tiered/Logs/* | ||||
| **/wwwroot/libs/* | ||||
|  | ||||
| **/Logs/* | ||||
| **/logs.txt | ||||
| @ -26,6 +26,7 @@ using Volo.Abp.Localization; | ||||
| using Volo.Abp.Modularity; | ||||
| using Volo.Abp.OpenIddict; | ||||
| using Volo.Abp.Security.Claims; | ||||
| using Volo.Abp.UI.Navigation.Urls; | ||||
| using IPNetwork = Microsoft.AspNetCore.HttpOverrides.IPNetwork; | ||||
|  | ||||
| namespace KonSoft; | ||||
| @ -50,15 +51,20 @@ public class KonSoftAuthServerModule : AbpModule | ||||
|         { | ||||
|             builder.AddValidation(options => | ||||
|             { | ||||
|                 options.AddAudiences("KonSoft"); | ||||
|                 options.AddAudiences(KonSoftConsts.AuthServerAudience); | ||||
|                 options.UseLocalServer(); | ||||
|                 options.UseAspNetCore(); | ||||
|             }); | ||||
|         }); | ||||
|  | ||||
|         context.Services.Configure<ForwardedHeadersOptions>(options => | ||||
|         PreConfigure<ForwardedHeadersOptions>(options => | ||||
|         { | ||||
|             options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; | ||||
|             options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | | ||||
|                                        ForwardedHeaders.XForwardedProto | | ||||
|                                        ForwardedHeaders.XForwardedHost; | ||||
|  | ||||
|             options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("::ffff:127.0.0.1"), 104)); | ||||
|             options.KnownProxies.Add(IPAddress.Parse("::ffff:127.0.0.1")); | ||||
|         }); | ||||
|  | ||||
|         if (!hostingEnvironment.IsDevelopment()) | ||||
| @ -105,6 +111,16 @@ public class KonSoftAuthServerModule : AbpModule | ||||
|             options.ApplicationName = "AuthServer"; | ||||
|         }); | ||||
|  | ||||
|         Configure<AppUrlOptions>(options => | ||||
|         { | ||||
|             options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; | ||||
|             options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? | ||||
|                                                  Array.Empty<string>()); | ||||
|  | ||||
|             options.Applications["Angular"].RootUrl = configuration["App:ClientUrl"]; | ||||
|             options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password"; | ||||
|         }); | ||||
|  | ||||
|         Configure<AbpBackgroundJobOptions>(options => { options.IsJobExecutionEnabled = false; }); | ||||
|  | ||||
|         context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options => | ||||
| @ -137,17 +153,16 @@ public class KonSoftAuthServerModule : AbpModule | ||||
|         var app = context.GetApplicationBuilder(); | ||||
|         var env = context.GetEnvironment(); | ||||
|  | ||||
|         if (env.IsDevelopment()) | ||||
|         app.UseForwardedHeaders(); | ||||
|         app.Use(async (ctx, next) => | ||||
|         { | ||||
|             ctx.Request.Scheme = "https"; | ||||
|             await next(); | ||||
|         }); | ||||
|  | ||||
|         app.UseDeveloperExceptionPage(); | ||||
|             app.UseForwardedHeaders(); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|         app.UseAbpRequestLocalization(); | ||||
|         app.UseErrorPage(); | ||||
|             app.UseForwardedHeaders(); | ||||
|             app.UseHsts(); | ||||
|         } | ||||
|  | ||||
|         app.UseAbpRequestLocalization(); | ||||
|  | ||||
|  | ||||
| @ -0,0 +1,50 @@ | ||||
| using Microsoft.AspNetCore.Builder; | ||||
| using Yarp.ReverseProxy.Configuration; | ||||
| namespace KonSoft.InternalGateway.Extensions | ||||
| { | ||||
|     public static class YarpSwaggerUIBuilderExtensions | ||||
|     { | ||||
|         public static IApplicationBuilder UseSwaggerUIWithYarp(this IApplicationBuilder app) | ||||
|         { | ||||
|             var serviceProvider = app.ApplicationServices; | ||||
|  | ||||
|             app.UseSwagger(); | ||||
|             app.UseSwaggerUI(options => | ||||
|             { | ||||
|                 var configuration = serviceProvider.GetRequiredService<IConfiguration>(); | ||||
|                 var logger = serviceProvider.GetRequiredService<ILogger<Program>>(); | ||||
|                 var proxyConfigProvider = serviceProvider.GetRequiredService<IProxyConfigProvider>(); | ||||
|                 var yarpConfig = proxyConfigProvider.GetConfig(); | ||||
|  | ||||
|                 var routedClusters = yarpConfig.Clusters | ||||
|                     .SelectMany(t => t.Destinations, | ||||
|                         (clusterId, destination) => new { clusterId.ClusterId, destination.Value }); | ||||
|  | ||||
|                 var groupedClusters = routedClusters | ||||
|                     .GroupBy(q => q.Value.Address) | ||||
|                     .Select(t => t.First()) | ||||
|                     .Distinct() | ||||
|                     .ToList(); | ||||
|                 var gatewayUrl = configuration["GatewayUrl"]; | ||||
|  | ||||
|                 options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); | ||||
|                 options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); | ||||
|                 foreach (var clusterGroup in groupedClusters) | ||||
|                 { | ||||
|                     var routeConfig = yarpConfig.Routes.FirstOrDefault(q => | ||||
|                         q.ClusterId == clusterGroup.ClusterId); | ||||
|                     if (routeConfig == null) | ||||
|                     { | ||||
|                         logger.LogWarning($"Swagger UI: Couldn't find route configuration for {clusterGroup.ClusterId}..."); | ||||
|                         continue; | ||||
|                     } | ||||
|                      | ||||
|                    // options.SwaggerEndpoint($"{clusterGroup.Value.Address}/swagger/v1/swagger.json", $"{routeConfig.RouteId} API"); | ||||
|                     options.SwaggerEndpoint(new Uri(new Uri(!string.IsNullOrWhiteSpace(gatewayUrl)? gatewayUrl: clusterGroup.Value.Address), $"{routeConfig.RouteId.Split("-")[0]}/swagger/v1/swagger.json").AbsoluteUri, $"{routeConfig.RouteId} API"); | ||||
|                 } | ||||
|             }); | ||||
|  | ||||
|             return app; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -1,5 +1,9 @@ | ||||
| using KonSoft.InternalGateway; | ||||
| using KonSoft.InternalGateway.Extensions; | ||||
| using KonSoft.Shared.Hosting.AspNetCore; | ||||
| using Microsoft.AspNetCore.Rewrite; | ||||
| using Microsoft.Extensions.DependencyInjection; | ||||
| using Microsoft.OpenApi.Models; | ||||
| using Serilog; | ||||
|  | ||||
| var assemblyName = typeof(Program).Assembly.GetName().Name!; | ||||
| @ -17,11 +21,26 @@ try | ||||
|         .AddAppSettingsSecretsJson() | ||||
|         .UseAutofac() | ||||
|         .UseSerilog(); | ||||
|  | ||||
|     builder.Services.AddAbpSwaggerGenWithOidc(builder.Configuration["AuthServer:Authority"]!, setupAction: options => | ||||
|     { | ||||
|         options.SwaggerDoc("v1", new OpenApiInfo | ||||
|         { | ||||
|             Title = "Gateway", | ||||
|             Version = "v1" | ||||
|         }); | ||||
|         options.DocInclusionPredicate((docName, description) => true); | ||||
|         options.CustomSchemaIds(type => type.FullName); | ||||
|     }); | ||||
|  | ||||
|  | ||||
|     builder.Services.AddReverseProxy() | ||||
|         .LoadFromConfig(builder.Configuration.GetSection("ReverseProxy")); | ||||
|     builder.Services.AddControllers(); | ||||
|     await builder.AddApplicationAsync<InternalGatewayModule>(); | ||||
|     var app = builder.Build(); | ||||
|     await app.InitializeApplicationAsync(); | ||||
|     app.UseSwaggerUIWithYarp(); | ||||
|     app.MapReverseProxy(); | ||||
|     app.MapGet("/heath", () => "Online"); | ||||
|     await app.RunAsync(); | ||||
|  | ||||
| @ -4,5 +4,10 @@ | ||||
|     "name": "KonSoft.InternalGateway", | ||||
|     "nodes": "https://config.konsoft.top/", | ||||
|     "secret": "DBE31703-14F9-4B01-893D-900B8380CE04" | ||||
|   }, | ||||
|   "AuthServer": { | ||||
|     "Authority": "https://devauth.konsoft.top", | ||||
|     "RequireHttpsMetadata": true, | ||||
|     "SwaggerClientId": "Gateway_Swagger" | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -5,6 +5,7 @@ using Microsoft.AspNetCore.Builder; | ||||
| using Microsoft.Extensions.DependencyInjection; | ||||
| using Microsoft.Extensions.Hosting; | ||||
| using Volo.Abp; | ||||
| using Volo.Abp.AspNetCore.Mvc.Libs; | ||||
| using Volo.Abp.BackgroundJobs; | ||||
| using Volo.Abp.Modularity; | ||||
|  | ||||
| @ -25,13 +26,18 @@ public class AdminHttpApiHostModule : AbpModule | ||||
|         SwaggerConfigurationHelper.ConfigureWithOidc( | ||||
|             context, | ||||
|             configuration["AuthServer:Authority"]!, | ||||
|             ["AdministrationService"], | ||||
|             ["Admin", "Dispatch", "Payment", "Report", "TenantManagement"], | ||||
|             discoveryEndpoint: configuration["AuthServer:MetadataAddress"], | ||||
|             apiTitle: "Administration Service API" | ||||
|         ); | ||||
|  | ||||
|         // ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD> | ||||
|         Configure<AbpBackgroundJobOptions>(options => options.IsJobExecutionEnabled = false); | ||||
|  | ||||
|         Configure<AbpMvcLibsOptions>(options => | ||||
|         { | ||||
|             options.CheckLibs = false; | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     public override void OnApplicationInitialization(ApplicationInitializationContext context) | ||||
| @ -69,7 +75,6 @@ public class AdminHttpApiHostModule : AbpModule | ||||
|             options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); | ||||
|             options.OAuthScopes("Admin"); | ||||
|         }); | ||||
|         app.UseStaticFiles(); | ||||
|          | ||||
|         app.UseAuditing(); | ||||
|         app.UseAbpSerilogEnrichers(); | ||||
|  | ||||
| @ -6,18 +6,7 @@ | ||||
|       "environmentVariables": { | ||||
|         "ASPNETCORE_ENVIRONMENT": "Development" | ||||
|       }, | ||||
|       "applicationUrl": "https://localhost:44354" | ||||
|     }, | ||||
|     "Container (Dockerfile)": { | ||||
|       "commandName": "Docker", | ||||
|       "launchBrowser": true, | ||||
|       "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", | ||||
|       "environmentVariables": { | ||||
|         "ASPNETCORE_HTTPS_PORTS": "8081", | ||||
|         "ASPNETCORE_HTTP_PORTS": "8080" | ||||
|       }, | ||||
|       "publishAllPorts": true, | ||||
|       "useSSL": true | ||||
|       "applicationUrl": "http://localhost:44354" | ||||
|     } | ||||
|   }, | ||||
|   "$schema": "http://json.schemastore.org/launchsettings.json" | ||||
|  | ||||
| @ -6,8 +6,9 @@ | ||||
|     "secret": "DBE31703-14F9-4B01-893D-900B8380CE04" | ||||
|   }, | ||||
|   "AuthServer": { | ||||
|     "Authority": "https://localhost:44322", | ||||
|     "RequireHttpsMetadata": true, | ||||
|     "SwaggerClientId": "Admin_Swagger" | ||||
|     "Authority": "https://devauth.konsoft.top", | ||||
|     "RequireHttpsMetadata": false, | ||||
|     "SwaggerClientId": "Dev_Admin_Swagger", | ||||
|     "MetadataAddress": "https://devauth.konsoft.top" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										2315
									
								
								modules/admin/src/KonSoft.Admin.EntityFrameworkCore/Migrations/20251026064212_V1.0.1.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										2315
									
								
								modules/admin/src/KonSoft.Admin.EntityFrameworkCore/Migrations/20251026064212_V1.0.1.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -0,0 +1,69 @@ | ||||
| using Microsoft.EntityFrameworkCore.Migrations; | ||||
|  | ||||
| #nullable disable | ||||
|  | ||||
| namespace KonSoft.Admin.Migrations | ||||
| { | ||||
|     /// <inheritdoc /> | ||||
|     public partial class V101 : Migration | ||||
|     { | ||||
|         /// <inheritdoc /> | ||||
|         protected override void Up(MigrationBuilder migrationBuilder) | ||||
|         { | ||||
|             migrationBuilder.RenameColumn( | ||||
|                 name: "WorkerId", | ||||
|                 table: "AppOrder", | ||||
|                 newName: "HouseholdWorkerId"); | ||||
|  | ||||
|             migrationBuilder.CreateIndex( | ||||
|                 name: "IX_AppOrder_CustomerId", | ||||
|                 table: "AppOrder", | ||||
|                 column: "CustomerId"); | ||||
|  | ||||
|             migrationBuilder.CreateIndex( | ||||
|                 name: "IX_AppOrder_HouseholdWorkerId", | ||||
|                 table: "AppOrder", | ||||
|                 column: "HouseholdWorkerId"); | ||||
|  | ||||
|             migrationBuilder.AddForeignKey( | ||||
|                 name: "FK_AppOrder_AbpUsers_CustomerId", | ||||
|                 table: "AppOrder", | ||||
|                 column: "CustomerId", | ||||
|                 principalTable: "AbpUsers", | ||||
|                 principalColumn: "Id", | ||||
|                 onDelete: ReferentialAction.Cascade); | ||||
|  | ||||
|             migrationBuilder.AddForeignKey( | ||||
|                 name: "FK_AppOrder_AbpUsers_HouseholdWorkerId", | ||||
|                 table: "AppOrder", | ||||
|                 column: "HouseholdWorkerId", | ||||
|                 principalTable: "AbpUsers", | ||||
|                 principalColumn: "Id"); | ||||
|         } | ||||
|  | ||||
|         /// <inheritdoc /> | ||||
|         protected override void Down(MigrationBuilder migrationBuilder) | ||||
|         { | ||||
|             migrationBuilder.DropForeignKey( | ||||
|                 name: "FK_AppOrder_AbpUsers_CustomerId", | ||||
|                 table: "AppOrder"); | ||||
|  | ||||
|             migrationBuilder.DropForeignKey( | ||||
|                 name: "FK_AppOrder_AbpUsers_HouseholdWorkerId", | ||||
|                 table: "AppOrder"); | ||||
|  | ||||
|             migrationBuilder.DropIndex( | ||||
|                 name: "IX_AppOrder_CustomerId", | ||||
|                 table: "AppOrder"); | ||||
|  | ||||
|             migrationBuilder.DropIndex( | ||||
|                 name: "IX_AppOrder_HouseholdWorkerId", | ||||
|                 table: "AppOrder"); | ||||
|  | ||||
|             migrationBuilder.RenameColumn( | ||||
|                 name: "HouseholdWorkerId", | ||||
|                 table: "AppOrder", | ||||
|                 newName: "WorkerId"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -68,6 +68,9 @@ namespace KonSoft.Admin.Migrations | ||||
|                         .HasColumnType("text") | ||||
|                         .HasColumnName("ExtraProperties"); | ||||
|  | ||||
|                     b.Property<Guid?>("HouseholdWorkerId") | ||||
|                         .HasColumnType("uuid"); | ||||
|  | ||||
|                     b.Property<bool>("IsDeleted") | ||||
|                         .ValueGeneratedOnAdd() | ||||
|                         .HasColumnType("boolean") | ||||
| @ -101,9 +104,6 @@ namespace KonSoft.Admin.Migrations | ||||
|                     b.Property<int>("Status") | ||||
|                         .HasColumnType("integer"); | ||||
|  | ||||
|                     b.Property<Guid?>("WorkerId") | ||||
|                         .HasColumnType("uuid"); | ||||
|  | ||||
|                     b.ComplexProperty<Dictionary<string, object>>("Address", "KonSoft.Admin.Entities.Order.Address#AddressInfo", b1 => | ||||
|                         { | ||||
|                             b1.IsRequired(); | ||||
| @ -131,6 +131,10 @@ namespace KonSoft.Admin.Migrations | ||||
|  | ||||
|                     b.HasKey("Id"); | ||||
|  | ||||
|                     b.HasIndex("CustomerId"); | ||||
|  | ||||
|                     b.HasIndex("HouseholdWorkerId"); | ||||
|  | ||||
|                     b.ToTable("AppOrder", (string)null); | ||||
|                 }); | ||||
|  | ||||
| @ -2104,6 +2108,23 @@ namespace KonSoft.Admin.Migrations | ||||
|                     b.HasDiscriminator().HasValue("HouseholdWorker"); | ||||
|                 }); | ||||
|  | ||||
|             modelBuilder.Entity("KonSoft.Admin.Entities.Order", b => | ||||
|                 { | ||||
|                     b.HasOne("Volo.Abp.Identity.IdentityUser", "Customer") | ||||
|                         .WithMany() | ||||
|                         .HasForeignKey("CustomerId") | ||||
|                         .OnDelete(DeleteBehavior.Cascade) | ||||
|                         .IsRequired(); | ||||
|  | ||||
|                     b.HasOne("Volo.Abp.Identity.IdentityUser", "HouseholdWorker") | ||||
|                         .WithMany() | ||||
|                         .HasForeignKey("HouseholdWorkerId"); | ||||
|  | ||||
|                     b.Navigation("Customer"); | ||||
|  | ||||
|                     b.Navigation("HouseholdWorker"); | ||||
|                 }); | ||||
|  | ||||
|             modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => | ||||
|                 { | ||||
|                     b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	