diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs index 0b0dd59968..819d643a21 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs @@ -8,5 +8,7 @@ public interface IPermissionAppService : IApplicationService { Task GetAsync([NotNull] string providerName, [NotNull] string providerKey); + Task GetByGroupAsync([NotNull] string groupName, [NotNull] string providerName, [NotNull] string providerKey); + Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdatePermissionsDto input); } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs index aa9bfe0029..28abc4d75b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs @@ -33,6 +33,16 @@ public class PermissionAppService : ApplicationService, IPermissionAppService } public virtual async Task GetAsync(string providerName, string providerKey) + { + return await GetInternalAsync(null, providerName, providerKey); + } + + public virtual async Task GetByGroupAsync(string groupName, string providerName, string providerKey) + { + return await GetInternalAsync(groupName, providerName, providerKey); + } + + protected virtual async Task GetInternalAsync(string groupName, string providerName, string providerKey) { await CheckProviderPolicy(providerName); @@ -45,7 +55,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService var multiTenancySide = CurrentTenant.GetMultiTenancySide(); var permissionGroups = new List(); - foreach (var group in await PermissionDefinitionManager.GetGroupsAsync()) + foreach (var group in (await PermissionDefinitionManager.GetGroupsAsync()).WhereIf(!groupName.IsNullOrWhiteSpace(), x => x.Name == groupName)) { var groupDto = CreatePermissionGroupDto(group); var permissions = group.GetPermissionsWithChildren() @@ -108,7 +118,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService return result; } - protected virtual PermissionGrantInfoDto CreatePermissionGrantInfoDto(PermissionDefinition permission) + protected virtual PermissionGrantInfoDto CreatePermissionGrantInfoDto(PermissionDefinition permission) { return new PermissionGrantInfoDto { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs index c89b505da2..2fe22472f0 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs @@ -26,6 +26,16 @@ public partial class PermissionsClientProxy : ClientProxyBase GetByGroupAsync(string groupName, string providerName, string providerKey) + { + return await RequestAsync(nameof(GetByGroupAsync), new ClientProxyRequestTypeValue + { + { typeof(string), groupName }, + { typeof(string), providerName }, + { typeof(string), providerKey } + }); + } + public virtual async Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) { await RequestAsync(nameof(UpdateAsync), new ClientProxyRequestTypeValue diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json index 2a57defab4..208271e67d 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json @@ -4,6 +4,78 @@ "rootPath": "permissionManagement", "remoteServiceName": "AbpPermissionManagement", "controllers": { + "Volo.Abp.PermissionManagement.Integration.PermissionIntegrationController": { + "controllerName": "PermissionIntegration", + "controllerGroupName": "PermissionIntegration", + "isRemoteService": true, + "isIntegrationService": true, + "apiVersion": null, + "type": "Volo.Abp.PermissionManagement.Integration.PermissionIntegrationController", + "interfaces": [ + { + "type": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService", + "name": "IPermissionIntegrationService", + "methods": [ + { + "name": "IsGrantedAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.IsGrantedRequest, Volo.Abp.PermissionManagement.Domain.Shared, Version=9.3.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + } + ] + } + ], + "actions": { + "IsGrantedAsyncByInput": { + "uniqueName": "IsGrantedAsyncByInput", + "name": "IsGrantedAsync", + "httpMethod": "GET", + "url": "integration-api/permission-management/permissions/is-granted", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.IsGrantedRequest, Volo.Abp.PermissionManagement.Domain.Shared, Version=9.3.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService" + } + } + }, "Volo.Abp.PermissionManagement.PermissionsController": { "controllerName": "Permissions", "controllerGroupName": "Permissions", @@ -41,6 +113,39 @@ "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" } }, + { + "name": "GetByGroupAsync", + "parametersOnMethod": [ + { + "name": "groupName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + } + }, { "name": "UpdateAsync", "parametersOnMethod": [ @@ -135,15 +240,15 @@ "allowAnonymous": null, "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/permission-management/permissions", + "GetByGroupAsyncByGroupNameAndProviderNameAndProviderKey": { + "uniqueName": "GetByGroupAsyncByGroupNameAndProviderNameAndProviderKey", + "name": "GetByGroupAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions/by-group", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", + "name": "groupName", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -151,7 +256,7 @@ "defaultValue": null }, { - "name": "providerKey", + "name": "providerName", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -159,18 +264,18 @@ "defaultValue": null }, { - "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", + "nameOnMethod": "groupName", + "name": "groupName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -181,8 +286,8 @@ "descriptorName": "" }, { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -193,96 +298,101 @@ "descriptorName": "" }, { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", + "bindingSourceId": "ModelBinding", "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" }, "allowAnonymous": null, "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" - } - } - }, - "Volo.Abp.PermissionManagement.Integration.PermissionIntegrationController": { - "controllerName": "PermissionIntegration", - "controllerGroupName": "PermissionIntegration", - "isRemoteService": true, - "isIntegrationService": true, - "apiVersion": null, - "type": "Volo.Abp.PermissionManagement.Integration.PermissionIntegrationController", - "interfaces": [ - { - "type": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService", - "name": "IPermissionIntegrationService", - "methods": [ - { - "name": "IsGrantedAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.IsGrantedRequest, Volo.Abp.PermissionManagement.Domain.Shared, Version=7.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - } - ] - } - ], - "actions": { - "IsGrantedAsyncByInput": { - "uniqueName": "IsGrantedAsyncByInput", - "name": "IsGrantedAsync", - "httpMethod": "GET", - "url": "integration-api/permission-management/permissions/is-granted", + }, + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/permission-management/permissions", "supportedVersions": [], "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.IsGrantedRequest, Volo.Abp.PermissionManagement.Domain.Shared, Version=7.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", "isOptional": false, "defaultValue": null } ], "parameters": [ + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService" + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" } } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs index 28dab8da28..ff6d7e6128 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs @@ -22,6 +22,13 @@ public class PermissionsController : AbpControllerBase, IPermissionAppService return PermissionAppService.GetAsync(providerName, providerKey); } + [HttpGet] + [Route("by-group")] + public virtual Task GetByGroupAsync(string groupName, string providerName, string providerKey) + { + return PermissionAppService.GetByGroupAsync(groupName, providerName, providerKey); + } + [HttpPut] public virtual Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js index ab0daefa90..a296877917 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js @@ -18,6 +18,13 @@ }, ajaxParams)); }; + volo.abp.permissionManagement.permissions.getByGroup = function(groupName, providerName, providerKey, ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/permission-management/permissions/by-group' + abp.utils.buildQueryString([{ name: 'groupName', value: groupName }, { name: 'providerName', value: providerName }, { name: 'providerKey', value: providerKey }]) + '', + type: 'GET' + }, ajaxParams)); + }; + volo.abp.permissionManagement.permissions.update = function(providerName, providerKey, input, ajaxParams) { return abp.ajax($.extend(true, { url: abp.appPath + 'api/permission-management/permissions' + abp.utils.buildQueryString([{ name: 'providerName', value: providerName }, { name: 'providerKey', value: providerKey }]) + '',