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
new file mode 100644
index 0000000000..0f7aa20468
--- /dev/null
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionDefinitionRecordConsts.cs
@@ -0,0 +1,11 @@
+namespace Volo.Abp.PermissionManagement;
+
+public class PermissionDefinitionRecordConsts
+{
+ ///
+ /// Default value: 128
+ ///
+ public static int MaxNameLength { get; set; } = 128;
+
+ public static int MaxDisplayNameLength { get; set; } = 256;
+}
\ No newline at end of file
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecordConsts.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecordConsts.cs
new file mode 100644
index 0000000000..fb26c075b8
--- /dev/null
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecordConsts.cs
@@ -0,0 +1,11 @@
+namespace Volo.Abp.PermissionManagement;
+
+public class PermissionGroupDefinitionRecordConsts
+{
+ ///
+ /// Default value: 128
+ ///
+ public static int MaxNameLength { get; set; } = 128;
+
+ public static int MaxDisplayNameLength { get; set; } = 256;
+}
\ No newline at end of file
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 de32b4e30d..70d00cc6d6 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
@@ -48,4 +48,29 @@ public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraPro
ExtraProperties = new ExtraPropertyDictionary();
this.SetDefaultsForExtraProperties();
}
+
+ public PermissionDefinitionRecord(
+ Guid id,
+ string groupName,
+ string name,
+ string parentName,
+ string displayName,
+ bool isEnabled = true,
+ MultiTenancySides multiTenancySide = MultiTenancySides.Both,
+ string providers = null,
+ string stateCheckers = null)
+ : base(id)
+ {
+ GroupName = Check.NotNullOrWhiteSpace(groupName, nameof(groupName), PermissionGroupDefinitionRecordConsts.MaxNameLength);
+ Name = Check.NotNullOrWhiteSpace(name, nameof(name), PermissionDefinitionRecordConsts.MaxNameLength);
+ ParentName = Check.NotNullOrWhiteSpace(parentName, nameof(parentName), PermissionDefinitionRecordConsts.MaxNameLength);
+ DisplayName = Check.NotNullOrWhiteSpace(displayName, nameof(displayName), PermissionDefinitionRecordConsts.MaxDisplayNameLength);
+ IsEnabled = isEnabled;
+ MultiTenancySide = multiTenancySide;
+ Providers = providers;
+ StateCheckers = stateCheckers;
+
+ ExtraProperties = new ExtraPropertyDictionary();
+ this.SetDefaultsForExtraProperties();
+ }
}
\ No newline at end of file
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecord.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecord.cs
index 6addd6c8a8..ff0c817ad2 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecord.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecord.cs
@@ -17,4 +17,17 @@ public class PermissionGroupDefinitionRecord : BasicAggregateRoot, IHasExt
ExtraProperties = new ExtraPropertyDictionary();
this.SetDefaultsForExtraProperties();
}
+
+ public PermissionGroupDefinitionRecord(
+ Guid id,
+ string name,
+ string displayName)
+ : base(id)
+ {
+ Name = Check.NotNullOrWhiteSpace(name, nameof(name), PermissionGroupDefinitionRecordConsts.MaxNameLength);
+ DisplayName = Check.NotNullOrWhiteSpace(displayName, nameof(displayName), PermissionGroupDefinitionRecordConsts.MaxDisplayNameLength);;
+
+ ExtraProperties = new ExtraPropertyDictionary();
+ this.SetDefaultsForExtraProperties();
+ }
}
\ No newline at end of file