From 0fdeec69f6c00094ce156327eae5231cbfa1b88e Mon Sep 17 00:00:00 2001 From: HanPaoPao <510423039@qq.com> Date: Fri, 3 Apr 2026 10:25:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7abp10.2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aspnet-core/Directory.Build.Microsoft.targets | 36 ++-- aspnet-core/Directory.Build.Volo.targets | 184 +++++++++--------- .../BasicManagementDbContext.cs | 1 + .../appsettings.Development.json | 4 +- .../Lion.AbpPro.DbMigrator/appsettings.json | 2 +- .../EntityFrameworkCore/AbpProDbContext.cs | 1 + ...ner.cs => 20260403021818_Init.Designer.cs} | 177 ++++++++++++++++- ...022220_1.0.0.cs => 20260403021818_Init.cs} | 93 ++++++++- .../AbpProDbContextModelSnapshot.cs | 173 +++++++++++++++- 9 files changed, 536 insertions(+), 135 deletions(-) rename aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/{20251227022220_1.0.0.Designer.cs => 20260403021818_Init.Designer.cs} (93%) rename aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/{20251227022220_1.0.0.cs => 20260403021818_Init.cs} (93%) diff --git a/aspnet-core/Directory.Build.Microsoft.targets b/aspnet-core/Directory.Build.Microsoft.targets index 1e807352..dc4944e3 100644 --- a/aspnet-core/Directory.Build.Microsoft.targets +++ b/aspnet-core/Directory.Build.Microsoft.targets @@ -1,26 +1,26 @@  - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/aspnet-core/Directory.Build.Volo.targets b/aspnet-core/Directory.Build.Volo.targets index c14ecc35..1ba3dc1e 100644 --- a/aspnet-core/Directory.Build.Volo.targets +++ b/aspnet-core/Directory.Build.Volo.targets @@ -1,96 +1,96 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.EntityFrameworkCore/EntityFrameworkCore/BasicManagementDbContext.cs b/aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.EntityFrameworkCore/EntityFrameworkCore/BasicManagementDbContext.cs index e1847c48..66b11238 100644 --- a/aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.EntityFrameworkCore/EntityFrameworkCore/BasicManagementDbContext.cs +++ b/aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.EntityFrameworkCore/EntityFrameworkCore/BasicManagementDbContext.cs @@ -17,6 +17,7 @@ public class BasicManagementDbContext : AbpDbContext, public DbSet PermissionGroups { get; set; } public DbSet Permissions { get; set; } public DbSet PermissionGrants { get; set; } + public DbSet ResourcePermissionGrants { get; set; } public DbSet Settings { get; set; } public DbSet SettingDefinitionRecords { get; set; } public DbSet Tenants { get; set; } diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Development.json b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Development.json index e255721d..d43b4763 100644 --- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Development.json +++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Development.json @@ -1,10 +1,10 @@ { "ConnectionStrings": { - "Default": "User ID=postgres;Password=1q2w3E*;Host=localhost;Port=5432;Database=LionAbpProDb;" + "Default": "User ID=abpprovben2;Password=rjrwHpkA3JKyS6S8;Host=139.155.114.244;Port=5432;Database=abpprovben2;" }, "Hangfire": { "Redis": { - "Host": "localhost:6379,password=1q2w3E*", + "Host": "localhost:139.155.114.244,password=1q2w3E*", "DB": "2" } }, diff --git a/aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.json b/aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.json index ba4709fc..d7694945 100644 --- a/aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.json +++ b/aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { // "Default": "Data Source=localhost;Port=3306;Database=LionAbpProDemo10;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true" - "Default": "User ID=postgres;Password=1q2w3E*;Host=localhost;Port=5432;Database=LionAbpProDb;" + "Default": "User ID=abpprovben2;Password=rjrwHpkA3JKyS6S8;Host=139.155.114.244;Port=5432;Database=abpprovben2;" } } \ No newline at end of file diff --git a/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/EntityFrameworkCore/AbpProDbContext.cs b/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/EntityFrameworkCore/AbpProDbContext.cs index a15f3414..b996c16f 100644 --- a/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/EntityFrameworkCore/AbpProDbContext.cs +++ b/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/EntityFrameworkCore/AbpProDbContext.cs @@ -30,6 +30,7 @@ namespace Lion.AbpPro.EntityFrameworkCore public DbSet PermissionGroups { get; set; } public DbSet Permissions { get; set; } public DbSet PermissionGrants { get; set; } + public DbSet ResourcePermissionGrants { get; set;} public DbSet Settings { get; set; } public DbSet SettingDefinitionRecords { get; set; } public DbSet Tenants { get; set; } diff --git a/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20251227022220_1.0.0.Designer.cs b/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20260403021818_Init.Designer.cs similarity index 93% rename from aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20251227022220_1.0.0.Designer.cs rename to aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20260403021818_Init.Designer.cs index cbac5c0f..dc0344d8 100644 --- a/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20251227022220_1.0.0.Designer.cs +++ b/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20260403021818_Init.Designer.cs @@ -13,8 +13,8 @@ using Volo.Abp.EntityFrameworkCore; namespace Lion.AbpPro.Migrations { [DbContext(typeof(AbpProDbContext))] - [Migration("20251227022220_1.0.0")] - partial class _100 + [Migration("20260403021818_Init")] + partial class Init { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -22,7 +22,7 @@ namespace Lion.AbpPro.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.PostgreSql) - .HasAnnotation("ProductVersion", "10.0.0") + .HasAnnotation("ProductVersion", "10.0.2") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); @@ -845,8 +845,8 @@ namespace Lion.AbpPro.Migrations b.Property("EntityTypeFullName") .IsRequired() - .HasMaxLength(128) - .HasColumnType("character varying(128)") + .HasMaxLength(512) + .HasColumnType("character varying(512)") .HasColumnName("EntityTypeFullName"); b.Property("ExtraProperties") @@ -892,8 +892,8 @@ namespace Lion.AbpPro.Migrations b.Property("PropertyTypeFullName") .IsRequired() - .HasMaxLength(64) - .HasColumnType("character varying(64)") + .HasMaxLength(512) + .HasColumnType("character varying(512)") .HasColumnName("PropertyTypeFullName"); b.Property("TenantId") @@ -1462,6 +1462,15 @@ namespace Lion.AbpPro.Migrations b.Property("LastPasswordChangeTime") .HasColumnType("timestamp with time zone"); + b.Property("LastSignInTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Leaved") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("Leaved"); + b.Property("LockoutEnabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") @@ -1657,6 +1666,47 @@ namespace Lion.AbpPro.Migrations b.ToTable("AbpUserOrganizationUnits", (string)null); }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b => + { + b.Property("CredentialId") + .HasMaxLength(1024) + .HasColumnType("bytea"); + + b.Property("TenantId") + .HasColumnType("uuid") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("CredentialId"); + + b.HasIndex("UserId"); + + b.ToTable("AbpUserPasskeys", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b => + { + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Password") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("TenantId") + .HasColumnType("uuid") + .HasColumnName("TenantId"); + + b.HasKey("UserId", "Password"); + + b.ToTable("AbpUserPasswordHistories", (string)null); + }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => { b.Property("UserId") @@ -1821,13 +1871,16 @@ namespace Lion.AbpPro.Migrations .HasColumnName("ExtraProperties"); b.Property("GroupName") - .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("IsEnabled") .HasColumnType("boolean"); + b.Property("ManagementPermissionName") + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + b.Property("MultiTenancySide") .HasColumnType("smallint"); @@ -1844,6 +1897,10 @@ namespace Lion.AbpPro.Migrations .HasMaxLength(128) .HasColumnType("character varying(128)"); + b.Property("ResourceName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + b.Property("StateCheckers") .HasMaxLength(256) .HasColumnType("character varying(256)"); @@ -1852,7 +1909,7 @@ namespace Lion.AbpPro.Migrations b.HasIndex("GroupName"); - b.HasIndex("Name") + b.HasIndex("ResourceName", "Name") .IsUnique(); b.ToTable("AbpPermissions", (string)null); @@ -1917,6 +1974,48 @@ namespace Lion.AbpPro.Migrations b.ToTable("AbpPermissionGroups", (string)null); }); + modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b => + { + b.Property("Id") + .HasColumnType("uuid"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ProviderName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ResourceKey") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("ResourceName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("TenantId") + .HasColumnType("uuid") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey") + .IsUnique(); + + b.ToTable("AbpResourcePermissionGrants", (string)null); + }); + modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => { b.Property("Id") @@ -2163,6 +2262,62 @@ namespace Lion.AbpPro.Migrations .IsRequired(); }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Passkeys") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 => + { + b1.Property("IdentityUserPasskeyCredentialId"); + + b1.Property("AttestationObject"); + + b1.Property("ClientDataJson"); + + b1.Property("CreatedAt"); + + b1.Property("IsBackedUp"); + + b1.Property("IsBackupEligible"); + + b1.Property("IsUserVerified"); + + b1.Property("Name"); + + b1.Property("PublicKey"); + + b1.Property("SignCount"); + + b1.PrimitiveCollection("Transports"); + + b1.HasKey("IdentityUserPasskeyCredentialId"); + + b1.ToTable("AbpUserPasskeys"); + + b1 + .ToJson("Data") + .HasColumnType("jsonb"); + + b1.WithOwner() + .HasForeignKey("IdentityUserPasskeyCredentialId"); + }); + + b.Navigation("Data"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("PasswordHistories") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => { b.HasOne("Volo.Abp.Identity.IdentityRole", null) @@ -2248,6 +2403,10 @@ namespace Lion.AbpPro.Migrations b.Navigation("OrganizationUnits"); + b.Navigation("Passkeys"); + + b.Navigation("PasswordHistories"); + b.Navigation("Roles"); b.Navigation("Tokens"); diff --git a/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20251227022220_1.0.0.cs b/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20260403021818_Init.cs similarity index 93% rename from aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20251227022220_1.0.0.cs rename to aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20260403021818_Init.cs index ad33a91f..d17431fb 100644 --- a/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20251227022220_1.0.0.cs +++ b/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20260403021818_Init.cs @@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Lion.AbpPro.Migrations { /// - public partial class _100 : Migration + public partial class Init : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) @@ -233,8 +233,10 @@ namespace Lion.AbpPro.Migrations columns: table => new { Id = table.Column(type: "uuid", nullable: false), - GroupName = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), + GroupName = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), Name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), + ResourceName = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), + ManagementPermissionName = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), ParentName = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), DisplayName = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), IsEnabled = table.Column(type: "boolean", nullable: false), @@ -428,6 +430,23 @@ namespace Lion.AbpPro.Migrations table.PrimaryKey("PK_AbpProNotificationSubscriptions", x => x.Id); }); + migrationBuilder.CreateTable( + name: "AbpResourcePermissionGrants", + columns: table => new + { + Id = table.Column(type: "uuid", nullable: false), + TenantId = table.Column(type: "uuid", nullable: true), + Name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), + ProviderName = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), + ProviderKey = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), + ResourceName = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), + ResourceKey = table.Column(type: "character varying(256)", maxLength: 256, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpResourcePermissionGrants", x => x.Id); + }); + migrationBuilder.CreateTable( name: "AbpRoles", columns: table => new @@ -595,6 +614,8 @@ namespace Lion.AbpPro.Migrations ShouldChangePasswordOnNextLogin = table.Column(type: "boolean", nullable: false), EntityVersion = table.Column(type: "integer", nullable: false), LastPasswordChangeTime = table.Column(type: "timestamp with time zone", nullable: true), + LastSignInTime = table.Column(type: "timestamp with time zone", nullable: true), + Leaved = table.Column(type: "boolean", nullable: false, defaultValue: false), ExtraProperties = table.Column(type: "text", nullable: false), ConcurrencyStamp = table.Column(type: "character varying(40)", maxLength: 40, nullable: false), CreationTime = table.Column(type: "timestamp without time zone", nullable: false), @@ -646,7 +667,7 @@ namespace Lion.AbpPro.Migrations ChangeType = table.Column(type: "smallint", nullable: false), EntityTenantId = table.Column(type: "uuid", nullable: true), EntityId = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), - EntityTypeFullName = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), + EntityTypeFullName = table.Column(type: "character varying(512)", maxLength: 512, nullable: false), ExtraProperties = table.Column(type: "text", nullable: true) }, constraints: table => @@ -823,6 +844,46 @@ namespace Lion.AbpPro.Migrations onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "AbpUserPasskeys", + columns: table => new + { + CredentialId = table.Column(type: "bytea", maxLength: 1024, nullable: false), + TenantId = table.Column(type: "uuid", nullable: true), + UserId = table.Column(type: "uuid", nullable: false), + Data = table.Column(type: "jsonb", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserPasskeys", x => x.CredentialId); + table.ForeignKey( + name: "FK_AbpUserPasskeys_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserPasswordHistories", + columns: table => new + { + UserId = table.Column(type: "uuid", nullable: false), + Password = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), + TenantId = table.Column(type: "uuid", nullable: true), + CreatedAt = table.Column(type: "timestamp with time zone", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserPasswordHistories", x => new { x.UserId, x.Password }); + table.ForeignKey( + name: "FK_AbpUserPasswordHistories_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( name: "AbpUserRoles", columns: table => new @@ -879,7 +940,7 @@ namespace Lion.AbpPro.Migrations NewValue = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), OriginalValue = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), PropertyName = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), - PropertyTypeFullName = table.Column(type: "character varying(64)", maxLength: 64, nullable: false) + PropertyTypeFullName = table.Column(type: "character varying(512)", maxLength: 512, nullable: false) }, constraints: table => { @@ -994,9 +1055,9 @@ namespace Lion.AbpPro.Migrations column: "GroupName"); migrationBuilder.CreateIndex( - name: "IX_AbpPermissions_Name", + name: "IX_AbpPermissions_ResourceName_Name", table: "AbpPermissions", - column: "Name", + columns: new[] { "ResourceName", "Name" }, unique: true); migrationBuilder.CreateIndex( @@ -1029,6 +1090,12 @@ namespace Lion.AbpPro.Migrations table: "AbpProNotificationSubscriptions", column: "ReceiveUserId"); + migrationBuilder.CreateIndex( + name: "IX_AbpResourcePermissionGrants_TenantId_Name_ResourceName_Reso~", + table: "AbpResourcePermissionGrants", + columns: new[] { "TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey" }, + unique: true); + migrationBuilder.CreateIndex( name: "IX_AbpRoleClaims_RoleId", table: "AbpRoleClaims", @@ -1111,6 +1178,11 @@ namespace Lion.AbpPro.Migrations table: "AbpUserOrganizationUnits", columns: new[] { "UserId", "OrganizationUnitId" }); + migrationBuilder.CreateIndex( + name: "IX_AbpUserPasskeys_UserId", + table: "AbpUserPasskeys", + column: "UserId"); + migrationBuilder.CreateIndex( name: "IX_AbpUserRoles_RoleId_UserId", table: "AbpUserRoles", @@ -1200,6 +1272,9 @@ namespace Lion.AbpPro.Migrations migrationBuilder.DropTable( name: "AbpProNotificationSubscriptions"); + migrationBuilder.DropTable( + name: "AbpResourcePermissionGrants"); + migrationBuilder.DropTable( name: "AbpRoleClaims"); @@ -1230,6 +1305,12 @@ namespace Lion.AbpPro.Migrations migrationBuilder.DropTable( name: "AbpUserOrganizationUnits"); + migrationBuilder.DropTable( + name: "AbpUserPasskeys"); + + migrationBuilder.DropTable( + name: "AbpUserPasswordHistories"); + migrationBuilder.DropTable( name: "AbpUserRoles"); diff --git a/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/AbpProDbContextModelSnapshot.cs b/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/AbpProDbContextModelSnapshot.cs index e6aea520..46fccc70 100644 --- a/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/AbpProDbContextModelSnapshot.cs +++ b/aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/AbpProDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace Lion.AbpPro.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.PostgreSql) - .HasAnnotation("ProductVersion", "10.0.0") + .HasAnnotation("ProductVersion", "10.0.2") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); @@ -842,8 +842,8 @@ namespace Lion.AbpPro.Migrations b.Property("EntityTypeFullName") .IsRequired() - .HasMaxLength(128) - .HasColumnType("character varying(128)") + .HasMaxLength(512) + .HasColumnType("character varying(512)") .HasColumnName("EntityTypeFullName"); b.Property("ExtraProperties") @@ -889,8 +889,8 @@ namespace Lion.AbpPro.Migrations b.Property("PropertyTypeFullName") .IsRequired() - .HasMaxLength(64) - .HasColumnType("character varying(64)") + .HasMaxLength(512) + .HasColumnType("character varying(512)") .HasColumnName("PropertyTypeFullName"); b.Property("TenantId") @@ -1459,6 +1459,15 @@ namespace Lion.AbpPro.Migrations b.Property("LastPasswordChangeTime") .HasColumnType("timestamp with time zone"); + b.Property("LastSignInTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Leaved") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("Leaved"); + b.Property("LockoutEnabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") @@ -1654,6 +1663,47 @@ namespace Lion.AbpPro.Migrations b.ToTable("AbpUserOrganizationUnits", (string)null); }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b => + { + b.Property("CredentialId") + .HasMaxLength(1024) + .HasColumnType("bytea"); + + b.Property("TenantId") + .HasColumnType("uuid") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("CredentialId"); + + b.HasIndex("UserId"); + + b.ToTable("AbpUserPasskeys", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b => + { + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Password") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("TenantId") + .HasColumnType("uuid") + .HasColumnName("TenantId"); + + b.HasKey("UserId", "Password"); + + b.ToTable("AbpUserPasswordHistories", (string)null); + }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => { b.Property("UserId") @@ -1818,13 +1868,16 @@ namespace Lion.AbpPro.Migrations .HasColumnName("ExtraProperties"); b.Property("GroupName") - .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("IsEnabled") .HasColumnType("boolean"); + b.Property("ManagementPermissionName") + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + b.Property("MultiTenancySide") .HasColumnType("smallint"); @@ -1841,6 +1894,10 @@ namespace Lion.AbpPro.Migrations .HasMaxLength(128) .HasColumnType("character varying(128)"); + b.Property("ResourceName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + b.Property("StateCheckers") .HasMaxLength(256) .HasColumnType("character varying(256)"); @@ -1849,7 +1906,7 @@ namespace Lion.AbpPro.Migrations b.HasIndex("GroupName"); - b.HasIndex("Name") + b.HasIndex("ResourceName", "Name") .IsUnique(); b.ToTable("AbpPermissions", (string)null); @@ -1914,6 +1971,48 @@ namespace Lion.AbpPro.Migrations b.ToTable("AbpPermissionGroups", (string)null); }); + modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b => + { + b.Property("Id") + .HasColumnType("uuid"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ProviderName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ResourceKey") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("ResourceName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("TenantId") + .HasColumnType("uuid") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey") + .IsUnique(); + + b.ToTable("AbpResourcePermissionGrants", (string)null); + }); + modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => { b.Property("Id") @@ -2160,6 +2259,62 @@ namespace Lion.AbpPro.Migrations .IsRequired(); }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Passkeys") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 => + { + b1.Property("IdentityUserPasskeyCredentialId"); + + b1.Property("AttestationObject"); + + b1.Property("ClientDataJson"); + + b1.Property("CreatedAt"); + + b1.Property("IsBackedUp"); + + b1.Property("IsBackupEligible"); + + b1.Property("IsUserVerified"); + + b1.Property("Name"); + + b1.Property("PublicKey"); + + b1.Property("SignCount"); + + b1.PrimitiveCollection("Transports"); + + b1.HasKey("IdentityUserPasskeyCredentialId"); + + b1.ToTable("AbpUserPasskeys"); + + b1 + .ToJson("Data") + .HasColumnType("jsonb"); + + b1.WithOwner() + .HasForeignKey("IdentityUserPasskeyCredentialId"); + }); + + b.Navigation("Data"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("PasswordHistories") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => { b.HasOne("Volo.Abp.Identity.IdentityRole", null) @@ -2245,6 +2400,10 @@ namespace Lion.AbpPro.Migrations b.Navigation("OrganizationUnits"); + b.Navigation("Passkeys"); + + b.Navigation("PasswordHistories"); + b.Navigation("Roles"); b.Navigation("Tokens");