From 39879ba929348f586ad9e43dc69baa77c5df9205 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 10 Aug 2023 11:45:55 +0800 Subject: [PATCH 1/6] Add `PermissionIntegrationService` to permission-management module. --- .../IPermissionIntegrationService.cs | 13 ++ .../Integration/IsGrantedInput.cs | 10 ++ .../Integration/IsGrantedOutput.cs | 11 ++ .../PermissionIntegrationService.cs | 43 +++++ ...missionIntegrationClientProxy.Generated.cs | 36 ++++ .../PermissionIntegrationClientProxy.cs | 7 + .../PermissionsClientProxy.Generated.cs | 8 +- .../PermissionsClientProxy.cs | 2 +- .../permissionManagement-generate-proxy.json | 155 +++++++++++++++++- ...lo.Abp.PermissionManagement.HttpApi.csproj | 1 + .../PermissionIntegrationController.cs | 35 ++++ 11 files changed, 316 insertions(+), 5 deletions(-) create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedInput.cs create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedOutput.cs create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.cs rename modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/{ => Volo/Abp/PermissionManagement}/PermissionsClientProxy.Generated.cs (93%) rename modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/{ => Volo/Abp/PermissionManagement}/PermissionsClientProxy.cs (74%) create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs new file mode 100644 index 0000000000..62fa2ed107 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace Volo.Abp.PermissionManagement.Integration; + +[IntegrationService] +public interface IPermissionIntegrationService : IApplicationService +{ + Task IsGrantedAsync(IsGrantedInput input); + + Task> IsGrantedAsync(List input); +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedInput.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedInput.cs new file mode 100644 index 0000000000..4f5c06ed9b --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedInput.cs @@ -0,0 +1,10 @@ +using System; + +namespace Volo.Abp.PermissionManagement.Integration; + +public class IsGrantedInput +{ + public Guid UserId { get; set; } + + public string[] PermissionNames { get; set; } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedOutput.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedOutput.cs new file mode 100644 index 0000000000..df8179387e --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedOutput.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; + +namespace Volo.Abp.PermissionManagement.Integration; + +public class IsGrantedOutput +{ + public Guid UserId { get; set; } + + public List GrantedPermissionNames { get; set; } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs new file mode 100644 index 0000000000..4b226c2a84 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Authorization.Permissions; + +namespace Volo.Abp.PermissionManagement.Integration; + +[IntegrationService] +public class PermissionIntegrationService : ApplicationService, IPermissionIntegrationService +{ + protected IPermissionManager PermissionManager { get; } + + public PermissionIntegrationService(IPermissionManager permissionManager) + { + PermissionManager = permissionManager; + } + + public virtual async Task IsGrantedAsync(IsGrantedInput input) + { + return new IsGrantedOutput + { + UserId = input.UserId, + GrantedPermissionNames = (await PermissionManager.GetAsync(input.PermissionNames, UserPermissionValueProvider.ProviderName, input.UserId.ToString())).Result.Where(x => x.IsGranted).Select(x => x.Name).ToList() + }; + } + + public virtual async Task> IsGrantedAsync(List input) + { + var result = new List(); + foreach (var item in input) + { + result.Add(new IsGrantedOutput + { + UserId = item.UserId, + GrantedPermissionNames = (await PermissionManager.GetAsync(item.PermissionNames, UserPermissionValueProvider.ProviderName, item.UserId.ToString())).Result.Where(x => x.IsGranted).Select(x => x.Name).ToList() + }); + } + + return result; + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs new file mode 100644 index 0000000000..1ffc7ad17b --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs @@ -0,0 +1,36 @@ +// This file is automatically generated by ABP framework to use MVC Controllers from CSharp +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Application.Dtos; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; +using Volo.Abp.Http.Client.ClientProxying; +using Volo.Abp.Http.Modeling; +using Volo.Abp.PermissionManagement.Integration; + +// ReSharper disable once CheckNamespace +namespace Volo.Abp.PermissionManagement.Integration; + +[Dependency(ReplaceServices = true)] +[ExposeServices(typeof(IPermissionIntegrationService), typeof(PermissionIntegrationClientProxy))] +[IntegrationService] +public partial class PermissionIntegrationClientProxy : ClientProxyBase, IPermissionIntegrationService +{ + public virtual async Task IsGrantedAsync(IsGrantedInput input) + { + return await RequestAsync(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue + { + { typeof(IsGrantedInput), input } + }); + } + + public async Task> IsGrantedAsync(List input) + { + return await RequestAsync>(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue + { + { typeof(IsGrantedInput), input } + }); + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.cs new file mode 100644 index 0000000000..115be0ac35 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.cs @@ -0,0 +1,7 @@ +// This file is part of PermissionIntegrationClientProxy, you can customize it here +// ReSharper disable once CheckNamespace +namespace Volo.Abp.PermissionManagement.Integration; + +public partial class PermissionIntegrationClientProxy +{ +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/PermissionsClientProxy.Generated.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs similarity index 93% rename from modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/PermissionsClientProxy.Generated.cs rename to modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs index d0955c61cd..c89b505da2 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/PermissionsClientProxy.Generated.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs @@ -1,15 +1,17 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; +using Volo.Abp.Http.Modeling; using Volo.Abp.PermissionManagement; // ReSharper disable once CheckNamespace -namespace Volo.Abp.PermissionManagement.ClientProxies; +namespace Volo.Abp.PermissionManagement; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IPermissionAppService), typeof(PermissionsClientProxy))] diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/PermissionsClientProxy.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.cs similarity index 74% rename from modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/PermissionsClientProxy.cs rename to modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.cs index 7037f81157..d01866ffb3 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/PermissionsClientProxy.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of PermissionsClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.Abp.PermissionManagement.ClientProxies; +namespace Volo.Abp.PermissionManagement; public partial class PermissionsClientProxy { 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 3f867ea85b..2c928da5c1 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 @@ -7,10 +7,74 @@ "Volo.Abp.PermissionManagement.PermissionsController": { "controllerName": "Permissions", "controllerGroupName": "Permissions", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, "type": "Volo.Abp.PermissionManagement.PermissionsController", "interfaces": [ { - "type": "Volo.Abp.PermissionManagement.IPermissionAppService" + "type": "Volo.Abp.PermissionManagement.IPermissionAppService", + "name": "IPermissionAppService", + "methods": [ + { + "name": "GetAsync", + "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 + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + } + }, + { + "name": "UpdateAsync", + "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": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -149,6 +213,95 @@ "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": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedOutput", + "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedOutput" + } + }, + { + "name": "IsGrantedAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.Integration.IsGrantedInput, Volo.Abp.PermissionManagement.Application.Contracts, Version=7.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.Integration.IsGrantedInput]", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.Integration.IsGrantedOutput]" + } + } + ] + } + ], + "actions": { + "IsGrantedAsyncByInput": { + "uniqueName": "IsGrantedAsyncByInput", + "name": "IsGrantedAsync", + "httpMethod": "POST", + "url": "integration-api/permission-management/permissions/is-granted", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedOutput", + "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedOutput" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService" + } + } } } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj index 870cd86aa1..f8f1eff54a 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj @@ -19,4 +19,5 @@ + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs new file mode 100644 index 0000000000..c5b88fe3bf --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; + +namespace Volo.Abp.PermissionManagement.Integration; + +[RemoteService(Name = PermissionManagementRemoteServiceConsts.RemoteServiceName)] +[Area(PermissionManagementRemoteServiceConsts.ModuleName)] +[ControllerName("PermissionIntegration")] +[Route("integration-api/permission-management/permissions")] +public class PermissionIntegrationController: AbpControllerBase, IPermissionIntegrationService +{ + protected IPermissionIntegrationService PermissionIntegrationService { get; } + + public PermissionIntegrationController(IPermissionIntegrationService permissionIntegrationService) + { + PermissionIntegrationService = permissionIntegrationService; + } + + [HttpPost] + [Route("is-granted")] + public virtual Task IsGrantedAsync(IsGrantedInput input) + { + return PermissionIntegrationService.IsGrantedAsync(input); + } + + [HttpPost] + [Route("is-granted/multiple")] + public virtual Task> IsGrantedAsync(List input) + { + return PermissionIntegrationService.IsGrantedAsync(input); + } +} From ad510cead1fe3743719fcd471f674b31c9866478 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 10 Aug 2023 14:08:32 +0800 Subject: [PATCH 2/6] Only keep one method of `IPermissionIntegrationService`. --- .../IPermissionIntegrationService.cs | 4 +- ...rantedInput.cs => PermissionGrantInput.cs} | 2 +- ...ntedOutput.cs => PermissionGrantOutput.cs} | 4 +- .../PermissionIntegrationService.cs | 20 +++------ ...missionIntegrationClientProxy.Generated.cs | 14 ++----- .../permissionManagement-generate-proxy.json | 41 ++++++------------- .../PermissionIntegrationController.cs | 10 +---- 7 files changed, 25 insertions(+), 70 deletions(-) rename modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/{IsGrantedInput.cs => PermissionGrantInput.cs} (82%) rename modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/{IsGrantedOutput.cs => PermissionGrantOutput.cs} (59%) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs index 62fa2ed107..09b8ae538e 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs @@ -7,7 +7,5 @@ namespace Volo.Abp.PermissionManagement.Integration; [IntegrationService] public interface IPermissionIntegrationService : IApplicationService { - Task IsGrantedAsync(IsGrantedInput input); - - Task> IsGrantedAsync(List input); + Task > IsGrantedAsync(List input); } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedInput.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantInput.cs similarity index 82% rename from modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedInput.cs rename to modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantInput.cs index 4f5c06ed9b..d5639f8b22 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedInput.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantInput.cs @@ -2,7 +2,7 @@ using System; namespace Volo.Abp.PermissionManagement.Integration; -public class IsGrantedInput +public class PermissionGrantInput { public Guid UserId { get; set; } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedOutput.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs similarity index 59% rename from modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedOutput.cs rename to modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs index df8179387e..613c7407bf 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedOutput.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs @@ -3,9 +3,9 @@ using System.Collections.Generic; namespace Volo.Abp.PermissionManagement.Integration; -public class IsGrantedOutput +public class PermissionGrantOutput { public Guid UserId { get; set; } - public List GrantedPermissionNames { get; set; } + public Dictionary Permissions { get; set; } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs index 4b226c2a84..ff6319dda6 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -17,24 +16,15 @@ public class PermissionIntegrationService : ApplicationService, IPermissionInteg PermissionManager = permissionManager; } - public virtual async Task IsGrantedAsync(IsGrantedInput input) + public virtual async Task> IsGrantedAsync(List input) { - return new IsGrantedOutput - { - UserId = input.UserId, - GrantedPermissionNames = (await PermissionManager.GetAsync(input.PermissionNames, UserPermissionValueProvider.ProviderName, input.UserId.ToString())).Result.Where(x => x.IsGranted).Select(x => x.Name).ToList() - }; - } - - public virtual async Task> IsGrantedAsync(List input) - { - var result = new List(); + var result = new List(); foreach (var item in input) { - result.Add(new IsGrantedOutput - { + result.Add(new PermissionGrantOutput { UserId = item.UserId, - GrantedPermissionNames = (await PermissionManager.GetAsync(item.PermissionNames, UserPermissionValueProvider.ProviderName, item.UserId.ToString())).Result.Where(x => x.IsGranted).Select(x => x.Name).ToList() + Permissions = (await PermissionManager.GetAsync(item.PermissionNames, UserPermissionValueProvider.ProviderName, item.UserId.ToString())).Result + .ToDictionary(x => x.Name, x => x.IsGranted) }); } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs index 1ffc7ad17b..dd43db07f4 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs @@ -18,19 +18,11 @@ namespace Volo.Abp.PermissionManagement.Integration; [IntegrationService] public partial class PermissionIntegrationClientProxy : ClientProxyBase, IPermissionIntegrationService { - public virtual async Task IsGrantedAsync(IsGrantedInput input) + public virtual async Task> IsGrantedAsync(List input) { - return await RequestAsync(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue + return await RequestAsync>(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue { - { typeof(IsGrantedInput), input } - }); - } - - public async Task> IsGrantedAsync(List input) - { - return await RequestAsync>(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue - { - { typeof(IsGrantedInput), input } + { typeof(List), input } }); } } 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 2c928da5c1..0e7dec06ee 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 @@ -231,33 +231,16 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", - "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.Integration.PermissionGrantInput, Volo.Abp.PermissionManagement.Application.Contracts, Version=7.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.Integration.PermissionGrantInput]", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedOutput", - "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedOutput" - } - }, - { - "name": "IsGrantedAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.Integration.IsGrantedInput, Volo.Abp.PermissionManagement.Application.Contracts, Version=7.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.Integration.IsGrantedInput]", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.Integration.IsGrantedOutput]" + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.Integration.PermissionGrantOutput]" } } ] @@ -273,9 +256,9 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", - "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.Integration.PermissionGrantInput, Volo.Abp.PermissionManagement.Application.Contracts, Version=7.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.Integration.PermissionGrantInput]", "isOptional": false, "defaultValue": null } @@ -285,8 +268,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", - "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedInput", + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.Integration.PermissionGrantInput]", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -295,8 +278,8 @@ } ], "returnValue": { - "type": "Volo.Abp.PermissionManagement.Integration.IsGrantedOutput", - "typeSimple": "Volo.Abp.PermissionManagement.Integration.IsGrantedOutput" + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.Integration.PermissionGrantOutput]" }, "allowAnonymous": null, "implementFrom": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService" diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs index c5b88fe3bf..4f989c8941 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; @@ -21,14 +20,7 @@ public class PermissionIntegrationController: AbpControllerBase, IPermissionInte [HttpPost] [Route("is-granted")] - public virtual Task IsGrantedAsync(IsGrantedInput input) - { - return PermissionIntegrationService.IsGrantedAsync(input); - } - - [HttpPost] - [Route("is-granted/multiple")] - public virtual Task> IsGrantedAsync(List input) + public virtual Task> IsGrantedAsync(List input) { return PermissionIntegrationService.IsGrantedAsync(input); } From 2e2dee86319c558d24e2dc82aa6b6a508d590130 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 10 Aug 2023 14:09:08 +0800 Subject: [PATCH 3/6] Update Volo.Abp.PermissionManagement.HttpApi.csproj --- .../Volo.Abp.PermissionManagement.HttpApi.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj index f8f1eff54a..870cd86aa1 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj @@ -19,5 +19,4 @@ - From cb80e3230e38d45308a00d74bdb4b9ed87af9de8 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 10 Aug 2023 16:10:51 +0800 Subject: [PATCH 4/6] Update some code of `IPermissionIntegrationService`. --- .../Integration/IPermissionIntegrationService.cs | 3 ++- .../Integration/PermissionGrantOutput.cs | 3 --- .../Integration/PermissionIntegrationService.cs | 9 +++++---- .../PermissionIntegrationClientProxy.Generated.cs | 4 ++-- .../permissionManagement-generate-proxy.json | 12 ++++++------ .../Integration/PermissionIntegrationController.cs | 5 +++-- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs index 09b8ae538e..25b35d87c3 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; namespace Volo.Abp.PermissionManagement.Integration; @@ -7,5 +8,5 @@ namespace Volo.Abp.PermissionManagement.Integration; [IntegrationService] public interface IPermissionIntegrationService : IApplicationService { - Task > IsGrantedAsync(List input); + Task> IsGrantedAsync(List input); } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs index 613c7407bf..b2873b9848 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs @@ -1,11 +1,8 @@ -using System; using System.Collections.Generic; namespace Volo.Abp.PermissionManagement.Integration; public class PermissionGrantOutput { - public Guid UserId { get; set; } - public Dictionary Permissions { get; set; } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs index ff6319dda6..1a8b4c16b8 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Authorization.Permissions; @@ -16,18 +17,18 @@ public class PermissionIntegrationService : ApplicationService, IPermissionInteg PermissionManager = permissionManager; } - public virtual async Task> IsGrantedAsync(List input) + public virtual async Task> IsGrantedAsync(List input) { var result = new List(); foreach (var item in input) { - result.Add(new PermissionGrantOutput { - UserId = item.UserId, + result.Add(new PermissionGrantOutput + { Permissions = (await PermissionManager.GetAsync(item.PermissionNames, UserPermissionValueProvider.ProviderName, item.UserId.ToString())).Result .ToDictionary(x => x.Name, x => x.IsGranted) }); } - return result; + return new ListResultDto(result); } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs index dd43db07f4..a3e4537729 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs @@ -18,9 +18,9 @@ namespace Volo.Abp.PermissionManagement.Integration; [IntegrationService] public partial class PermissionIntegrationClientProxy : ClientProxyBase, IPermissionIntegrationService { - public virtual async Task> IsGrantedAsync(List input) + public virtual async Task> IsGrantedAsync(List input) { - return await RequestAsync>(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue + return await RequestAsync>(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue { { typeof(List), input } }); 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 0e7dec06ee..ffad289f5a 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 @@ -239,8 +239,8 @@ } ], "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.Integration.PermissionGrantOutput]" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" } } ] @@ -250,7 +250,7 @@ "IsGrantedAsyncByInput": { "uniqueName": "IsGrantedAsyncByInput", "name": "IsGrantedAsync", - "httpMethod": "POST", + "httpMethod": "GET", "url": "integration-api/permission-management/permissions/is-granted", "supportedVersions": [], "parametersOnMethod": [ @@ -273,13 +273,13 @@ "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", + "bindingSourceId": "ModelBinding", "descriptorName": "" } ], "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.Integration.PermissionGrantOutput]" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" }, "allowAnonymous": null, "implementFrom": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService" diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs index 4f989c8941..f6adff7300 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; namespace Volo.Abp.PermissionManagement.Integration; @@ -18,9 +19,9 @@ public class PermissionIntegrationController: AbpControllerBase, IPermissionInte PermissionIntegrationService = permissionIntegrationService; } - [HttpPost] + [HttpGet] [Route("is-granted")] - public virtual Task> IsGrantedAsync(List input) + public virtual Task> IsGrantedAsync(List input) { return PermissionIntegrationService.IsGrantedAsync(input); } From 4d33f3592e3ed3e08ffabe43c4ee9b40c6f8c97e Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 10 Aug 2023 16:21:09 +0800 Subject: [PATCH 5/6] Add `UserId` to `PermissionGrantOutput `. --- .../PermissionManagement/Integration/PermissionGrantOutput.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs index b2873b9848..613c7407bf 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/PermissionGrantOutput.cs @@ -1,8 +1,11 @@ +using System; using System.Collections.Generic; namespace Volo.Abp.PermissionManagement.Integration; public class PermissionGrantOutput { + public Guid UserId { get; set; } + public Dictionary Permissions { get; set; } } From 24c58272df575f9c3d57dc73062fdd66fa416c5c Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 10 Aug 2023 16:30:19 +0800 Subject: [PATCH 6/6] Set `UserId` of `PermissionGrantOutput`. --- .../Integration/PermissionIntegrationService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs index 1a8b4c16b8..319619efc7 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs @@ -24,6 +24,7 @@ public class PermissionIntegrationService : ApplicationService, IPermissionInteg { result.Add(new PermissionGrantOutput { + UserId = item.UserId, Permissions = (await PermissionManager.GetAsync(item.PermissionNames, UserPermissionValueProvider.ProviderName, item.UserId.ToString())).Result .ToDictionary(x => x.Name, x => x.IsGranted) });