diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionDefinitionRecordConsts.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionDefinitionRecordConsts.cs
index 0f7aa20468..93b1b465c6 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionDefinitionRecordConsts.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionDefinitionRecordConsts.cs
@@ -8,4 +8,8 @@ public class PermissionDefinitionRecordConsts
public static int MaxNameLength { get; set; } = 128;
public static int MaxDisplayNameLength { get; set; } = 256;
+
+ public static int MaxProvidersLength { get; set; } = 128;
+
+ public static int MaxStateCheckersLength { get; set; } = 256;
}
\ No newline at end of file
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionGrantConsts.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionGrantConsts.cs
index 38a17340c5..630f5dc72e 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionGrantConsts.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionGrantConsts.cs
@@ -2,11 +2,6 @@
public static class PermissionGrantConsts
{
- ///
- /// Default value: 128
- ///
- public static int MaxNameLength { get; set; } = 128;
-
///
/// Default value: 64
///
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs
index 70d00cc6d6..ec2e35136d 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs
@@ -13,6 +13,8 @@ public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraPro
public string ParentName { get; set; }
+ public string DisplayName { get; set; }
+
public bool IsEnabled { get; set; }
public MultiTenancySides MultiTenancySide { get; set; }
@@ -22,22 +24,8 @@ public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraPro
///
public string Providers { get; set; }
- public string DisplayName { get; set; }
-
///
- /// A JSON array containing feature checkers data.
- ///
- /// Example:
- /// [
- /// {
- /// "type": "RequireFeatures",
- /// "featureNames": [ "FeatureA", "FeatureB" ]
- /// },
- /// {
- /// "type": "RequireGlobalFeatures",
- /// "featureNames": [ "GlobalFeatureA", "GlobalFeatureB" ]
- /// }
- /// ]
+ /// Serialized string to store info about the state checkers.
///
public string StateCheckers { get; set; }
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementDbContextModelBuilderExtensions.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementDbContextModelBuilderExtensions.cs
index bf9aa570a7..d8b3dd4362 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementDbContextModelBuilderExtensions.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementDbContextModelBuilderExtensions.cs
@@ -1,5 +1,6 @@
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
+using Volo.Abp.Authorization.Permissions;
using Volo.Abp.EntityFrameworkCore.Modeling;
namespace Volo.Abp.PermissionManagement.EntityFrameworkCore;
@@ -17,11 +18,44 @@ public static class AbpPermissionManagementDbContextModelBuilderExtensions
b.ConfigureByConvention();
- b.Property(x => x.Name).HasMaxLength(PermissionGrantConsts.MaxNameLength).IsRequired();
+ b.Property(x => x.Name).HasMaxLength(PermissionDefinitionRecordConsts.MaxNameLength).IsRequired();
b.Property(x => x.ProviderName).HasMaxLength(PermissionGrantConsts.MaxProviderNameLength).IsRequired();
b.Property(x => x.ProviderKey).HasMaxLength(PermissionGrantConsts.MaxProviderKeyLength).IsRequired();
- b.HasIndex(x => new { x.TenantId, x.Name, x.ProviderName, x.ProviderKey }).IsUnique(true);
+ b.HasIndex(x => new { x.TenantId, x.Name, x.ProviderName, x.ProviderKey }).IsUnique();
+
+ b.ApplyObjectExtensionMappings();
+ });
+
+ builder.Entity(b =>
+ {
+ b.ToTable(AbpPermissionManagementDbProperties.DbTablePrefix + "PermissionGroups", AbpPermissionManagementDbProperties.DbSchema);
+
+ b.ConfigureByConvention();
+
+ b.Property(x => x.Name).HasMaxLength(PermissionGroupDefinitionRecordConsts.MaxNameLength).IsRequired();
+ b.Property(x => x.DisplayName).HasMaxLength(PermissionGroupDefinitionRecordConsts.MaxDisplayNameLength).IsRequired();
+
+ b.HasIndex(x => new { x.Name }).IsUnique();
+
+ b.ApplyObjectExtensionMappings();
+ });
+
+ builder.Entity(b =>
+ {
+ b.ToTable(AbpPermissionManagementDbProperties.DbTablePrefix + "Permissions", AbpPermissionManagementDbProperties.DbSchema);
+
+ b.ConfigureByConvention();
+
+ b.Property(x => x.GroupName).HasMaxLength(PermissionGroupDefinitionRecordConsts.MaxNameLength).IsRequired();
+ b.Property(x => x.Name).HasMaxLength(PermissionDefinitionRecordConsts.MaxNameLength).IsRequired();
+ b.Property(x => x.ParentName).HasMaxLength(PermissionDefinitionRecordConsts.MaxNameLength);
+ b.Property(x => x.DisplayName).HasMaxLength(PermissionDefinitionRecordConsts.MaxDisplayNameLength).IsRequired();
+ b.Property(x => x.Providers).HasMaxLength(PermissionDefinitionRecordConsts.MaxProvidersLength).IsRequired();
+ b.Property(x => x.StateCheckers).HasMaxLength(PermissionDefinitionRecordConsts.MaxStateCheckersLength).IsRequired();
+
+ b.HasIndex(x => new { x.Name }).IsUnique();
+ b.HasIndex(x => new { x.GroupName });
b.ApplyObjectExtensionMappings();
});
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/IPermissionManagementDbContext.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/IPermissionManagementDbContext.cs
index 174ba1762a..c294c1b248 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/IPermissionManagementDbContext.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/IPermissionManagementDbContext.cs
@@ -7,5 +7,9 @@ namespace Volo.Abp.PermissionManagement.EntityFrameworkCore;
[ConnectionStringName(AbpPermissionManagementDbProperties.ConnectionStringName)]
public interface IPermissionManagementDbContext : IEfCoreDbContext
{
+ DbSet PermissionGroups { get; }
+
+ DbSet Permissions { get; }
+
DbSet PermissionGrants { get; }
}
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/PermissionManagementDbContext.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/PermissionManagementDbContext.cs
index f1183eec16..fe143fa8ae 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/PermissionManagementDbContext.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/PermissionManagementDbContext.cs
@@ -7,6 +7,8 @@ namespace Volo.Abp.PermissionManagement.EntityFrameworkCore;
[ConnectionStringName(AbpPermissionManagementDbProperties.ConnectionStringName)]
public class PermissionManagementDbContext : AbpDbContext, IPermissionManagementDbContext
{
+ public DbSet PermissionGroups { get; set; }
+ public DbSet Permissions { get; set; }
public DbSet PermissionGrants { get; set; }
public PermissionManagementDbContext(DbContextOptions options)
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbContextExtensions.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbContextExtensions.cs
index a3d1461e58..9c7c90af58 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbContextExtensions.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbContextExtensions.cs
@@ -9,6 +9,16 @@ public static class AbpPermissionManagementMongoDbContextExtensions
{
Check.NotNull(builder, nameof(builder));
+ builder.Entity(b =>
+ {
+ b.CollectionName = AbpPermissionManagementDbProperties.DbTablePrefix + "PermissionGroups";
+ });
+
+ builder.Entity(b =>
+ {
+ b.CollectionName = AbpPermissionManagementDbProperties.DbTablePrefix + "Permissions";
+ });
+
builder.Entity(b =>
{
b.CollectionName = AbpPermissionManagementDbProperties.DbTablePrefix + "PermissionGrants";
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/IPermissionManagementMongoDbContext.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/IPermissionManagementMongoDbContext.cs
index 0826003628..98015484fb 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/IPermissionManagementMongoDbContext.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/IPermissionManagementMongoDbContext.cs
@@ -7,5 +7,9 @@ namespace Volo.Abp.PermissionManagement.MongoDB;
[ConnectionStringName(AbpPermissionManagementDbProperties.ConnectionStringName)]
public interface IPermissionManagementMongoDbContext : IAbpMongoDbContext
{
+ IMongoCollection PermissionGroups { get; }
+
+ IMongoCollection Permissions { get; }
+
IMongoCollection PermissionGrants { get; }
}
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/PermissionManagementMongoDbContext.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/PermissionManagementMongoDbContext.cs
index e8ef18f162..c62db52c11 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/PermissionManagementMongoDbContext.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/PermissionManagementMongoDbContext.cs
@@ -7,6 +7,8 @@ namespace Volo.Abp.PermissionManagement.MongoDB;
[ConnectionStringName(AbpPermissionManagementDbProperties.ConnectionStringName)]
public class PermissionManagementMongoDbContext : AbpMongoDbContext, IPermissionManagementMongoDbContext
{
+ public IMongoCollection PermissionGroups => Collection();
+ public IMongoCollection Permissions => Collection();
public IMongoCollection PermissionGrants => Collection();
protected override void CreateModel(IMongoModelBuilder modelBuilder)