Database mappings for permission entities.

pull/13806/head
Halil İbrahim Kalkan 3 years ago
parent 0037ff2834
commit b45d656f35

@ -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;
}

@ -2,11 +2,6 @@
public static class PermissionGrantConsts
{
/// <summary>
/// Default value: 128
/// </summary>
public static int MaxNameLength { get; set; } = 128;
/// <summary>
/// Default value: 64
/// </summary>

@ -13,6 +13,8 @@ public class PermissionDefinitionRecord : BasicAggregateRoot<Guid>, 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<Guid>, IHasExtraPro
/// </summary>
public string Providers { get; set; }
public string DisplayName { get; set; }
/// <summary>
/// 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.
/// </summary>
public string StateCheckers { get; set; }

@ -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<PermissionGroupDefinitionRecord>(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<PermissionDefinitionRecord>(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();
});

@ -7,5 +7,9 @@ namespace Volo.Abp.PermissionManagement.EntityFrameworkCore;
[ConnectionStringName(AbpPermissionManagementDbProperties.ConnectionStringName)]
public interface IPermissionManagementDbContext : IEfCoreDbContext
{
DbSet<PermissionGroupDefinitionRecord> PermissionGroups { get; }
DbSet<PermissionDefinitionRecord> Permissions { get; }
DbSet<PermissionGrant> PermissionGrants { get; }
}

@ -7,6 +7,8 @@ namespace Volo.Abp.PermissionManagement.EntityFrameworkCore;
[ConnectionStringName(AbpPermissionManagementDbProperties.ConnectionStringName)]
public class PermissionManagementDbContext : AbpDbContext<PermissionManagementDbContext>, IPermissionManagementDbContext
{
public DbSet<PermissionGroupDefinitionRecord> PermissionGroups { get; set; }
public DbSet<PermissionDefinitionRecord> Permissions { get; set; }
public DbSet<PermissionGrant> PermissionGrants { get; set; }
public PermissionManagementDbContext(DbContextOptions<PermissionManagementDbContext> options)

@ -9,6 +9,16 @@ public static class AbpPermissionManagementMongoDbContextExtensions
{
Check.NotNull(builder, nameof(builder));
builder.Entity<PermissionGroupDefinitionRecord>(b =>
{
b.CollectionName = AbpPermissionManagementDbProperties.DbTablePrefix + "PermissionGroups";
});
builder.Entity<PermissionDefinitionRecord>(b =>
{
b.CollectionName = AbpPermissionManagementDbProperties.DbTablePrefix + "Permissions";
});
builder.Entity<PermissionGrant>(b =>
{
b.CollectionName = AbpPermissionManagementDbProperties.DbTablePrefix + "PermissionGrants";

@ -7,5 +7,9 @@ namespace Volo.Abp.PermissionManagement.MongoDB;
[ConnectionStringName(AbpPermissionManagementDbProperties.ConnectionStringName)]
public interface IPermissionManagementMongoDbContext : IAbpMongoDbContext
{
IMongoCollection<PermissionGroupDefinitionRecord> PermissionGroups { get; }
IMongoCollection<PermissionDefinitionRecord> Permissions { get; }
IMongoCollection<PermissionGrant> PermissionGrants { get; }
}

@ -7,6 +7,8 @@ namespace Volo.Abp.PermissionManagement.MongoDB;
[ConnectionStringName(AbpPermissionManagementDbProperties.ConnectionStringName)]
public class PermissionManagementMongoDbContext : AbpMongoDbContext, IPermissionManagementMongoDbContext
{
public IMongoCollection<PermissionGroupDefinitionRecord> PermissionGroups => Collection<PermissionGroupDefinitionRecord>();
public IMongoCollection<PermissionDefinitionRecord> Permissions => Collection<PermissionDefinitionRecord>();
public IMongoCollection<PermissionGrant> PermissionGrants => Collection<PermissionGrant>();
protected override void CreateModel(IMongoModelBuilder modelBuilder)

Loading…
Cancel
Save