Browse Source

fix(definition): Static definition are not allowed to increase children.

pull/894/head
colin 2 years ago
parent
commit
cfd1ab4d5f
  1. 16
      apps/vue/src/views/feature-management/definitions/features/components/FeatureDefinitionModal.vue
  2. 1
      apps/vue/src/views/feature-management/definitions/groups/components/GroupDefinitionTable.vue
  3. 1
      apps/vue/src/views/permission-management/definitions/groups/components/GroupDefinitionTable.vue
  4. 16
      apps/vue/src/views/permission-management/definitions/permissions/components/PermissionDefinitionModal.vue
  5. 1
      apps/vue/src/views/webhooks/definitions/groups/components/GroupDefinitionTable.vue
  6. 16
      apps/vue/src/views/webhooks/definitions/webhooks/components/WebhookDefinitionModal.vue
  7. 7
      aspnet-core/modules/feature-management/LINGYUN.Abp.FeatureManagement.Application/LINGYUN/Abp/FeatureManagement/Definitions/FeatureDefinitionAppService.cs
  8. 6
      aspnet-core/modules/permissions-management/LINGYUN.Abp.PermissionManagement.Application/LINGYUN/Abp/PermissionManagement/Definitions/PermissionDefinitionAppService.cs
  9. 6
      aspnet-core/modules/webhooks/LINGYUN.Abp.WebhooksManagement.Application/LINGYUN/Abp/WebhooksManagement/Definitions/WebhookDefinitionAppService.cs

16
apps/vue/src/views/feature-management/definitions/features/components/FeatureDefinitionModal.vue

@ -236,12 +236,14 @@
},
});
const getGroupOptions = computed(() => {
return state.availableGroups.map((group) => {
const info = deserialize(group.displayName);
return {
label: Lr(info.resourceName, info.name),
value: group.name,
};
return state.availableGroups
.filter((group) => !group.isStatic)
.map((group) => {
const info = deserialize(group.displayName);
return {
label: Lr(info.resourceName, info.name),
value: group.name,
};
});
});
watch(
@ -295,7 +297,7 @@
GetListAsyncByInput({
groupName: groupName,
}).then((res) => {
const featureGroup = groupBy(res.items, 'groupName');
const featureGroup = groupBy(res.items.filter((def) => !def.isStatic), 'groupName');
const featureTreeData: FeatureTreeData[] = [];
Object.keys(featureGroup).forEach((gk) => {
const featureTree = listToTree(featureGroup[gk], {

1
apps/vue/src/views/feature-management/definitions/groups/components/GroupDefinitionTable.vue

@ -35,6 +35,7 @@
]"
:dropDownActions="[
{
ifShow: !record.isStatic,
auth: 'FeatureManagement.Definitions.Create',
label: L('FeatureDefinitions:AddNew'),
icon: 'ant-design:edit-outlined',

1
apps/vue/src/views/permission-management/definitions/groups/components/GroupDefinitionTable.vue

@ -35,6 +35,7 @@
]"
:dropDownActions="[
{
ifShow: !record.isStatic,
auth: 'PermissionManagement.Definitions.Create',
label: L('PermissionDefinitions:AddNew'),
icon: 'ant-design:edit-outlined',

16
apps/vue/src/views/permission-management/definitions/permissions/components/PermissionDefinitionModal.vue

@ -188,12 +188,14 @@
},
});
const getGroupOptions = computed(() => {
return state.availableGroups.map((group) => {
const info = deserialize(group.displayName);
return {
label: Lr(info.resourceName, info.name),
value: group.name,
};
return state.availableGroups
.filter((group) => !group.isStatic)
.map((group) => {
const info = deserialize(group.displayName);
return {
label: Lr(info.resourceName, info.name),
value: group.name,
};
});
});
watch(
@ -249,7 +251,7 @@
GetListAsyncByInput({
groupName: groupName,
}).then((res) => {
const permissionGroup = groupBy(res.items, 'groupName');
const permissionGroup = groupBy(res.items.filter((def) => !def.isStatic), 'groupName');
const permissionTreeData: PermissionTreeData[] = [];
Object.keys(permissionGroup).forEach((gk) => {
const permissionTree = listToTree(permissionGroup[gk], {

1
apps/vue/src/views/webhooks/definitions/groups/components/GroupDefinitionTable.vue

@ -35,6 +35,7 @@
]"
:dropDownActions="[
{
ifShow: !record.isStatic,
auth: 'AbpWebhooks.Definitions.Create',
label: L('Webhooks:AddNew'),
icon: 'ant-design:edit-outlined',

16
apps/vue/src/views/webhooks/definitions/webhooks/components/WebhookDefinitionModal.vue

@ -182,12 +182,14 @@
});
});
const getGroupOptions = computed(() => {
return state.availableGroups.map((group) => {
const info = deserialize(group.displayName);
return {
label: Lr(info.resourceName, info.name),
value: group.name,
};
return state.availableGroups
.filter((group) => !group.isStatic)
.map((group) => {
const info = deserialize(group.displayName);
return {
label: Lr(info.resourceName, info.name),
value: group.name,
};
});
});
watch(
@ -220,7 +222,7 @@
state.entityEditFlag = false;
if (!name) {
state.entity = {
isInherited: true,
isEnabled: true,
groupName: state.defaultGroup,
requiredFeatures: [],
};

7
aspnet-core/modules/feature-management/LINGYUN.Abp.FeatureManagement.Application/LINGYUN/Abp/FeatureManagement/Definitions/FeatureDefinitionAppService.cs

@ -50,6 +50,13 @@ public class FeatureDefinitionAppService : FeatureManagementAppServiceBase, IFea
[Authorize(FeatureManagementPermissionNames.Definition.Create)]
public async virtual Task<FeatureDefinitionDto> CreateAsync(FeatureDefinitionCreateDto input)
{
var staticGroups = await _staticFeatureDefinitionStore.GetGroupsAsync();
if (staticGroups.Any(g => g.Name == input.GroupName))
{
throw new BusinessException(FeatureManagementErrorCodes.GroupDefinition.StaticGroupNotAllowedChanged)
.WithData(nameof(FeatureDefinitionRecord.Name), input.GroupName);
}
if (await _staticFeatureDefinitionStore.GetOrNullAsync(input.Name) != null)
{
throw new BusinessException(FeatureManagementErrorCodes.Definition.AlreayNameExists)

6
aspnet-core/modules/permissions-management/LINGYUN.Abp.PermissionManagement.Application/LINGYUN/Abp/PermissionManagement/Definitions/PermissionDefinitionAppService.cs

@ -57,6 +57,12 @@ public class PermissionDefinitionAppService : PermissionManagementAppServiceBase
throw new BusinessException(PermissionManagementErrorCodes.Definition.AlreayNameExists)
.WithData(nameof(PermissionDefinitionRecord.Name), input.Name);
}
var staticGroups = await _staticPermissionDefinitionStore.GetGroupsAsync();
if (staticGroups.Any(g => g.Name == input.GroupName))
{
throw new BusinessException(PermissionManagementErrorCodes.GroupDefinition.StaticGroupNotAllowedChanged)
.WithData(nameof(PermissionDefinitionRecord.Name), input.GroupName);
}
var groupDefinition = await _permissionDefinitionManager.GetGroupOrNullAsync(input.GroupName);
if (groupDefinition == null)

6
aspnet-core/modules/webhooks/LINGYUN.Abp.WebhooksManagement.Application/LINGYUN/Abp/WebhooksManagement/Definitions/WebhookDefinitionAppService.cs

@ -38,6 +38,12 @@ public class WebhookDefinitionAppService : WebhooksManagementAppServiceBase, IWe
[Authorize(WebhooksManagementPermissions.WebhookDefinition.Create)]
public async virtual Task<WebhookDefinitionDto> CreateAsync(WebhookDefinitionCreateDto input)
{
if (await _staticWebhookDefinitionStore.GetGroupOrNullAsync(input.GroupName) != null)
{
throw new BusinessException(WebhooksManagementErrorCodes.WebhookGroupDefinition.StaticGroupNotAllowedChanged)
.WithData(nameof(WebhookDefinitionRecord.Name), input.GroupName);
}
if (await _webhookDefinitionManager.GetOrNullAsync(input.Name) != null)
{
throw new BusinessException(WebhooksManagementErrorCodes.WebhookDefinition.AlreayNameExists)

Loading…
Cancel
Save