Browse Source

Add `PermissionIntegrationService` to permission-management module.

pull/17337/head
maliming 3 years ago
parent
commit
39879ba929
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 13
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IPermissionIntegrationService.cs
  2. 10
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedInput.cs
  3. 11
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/Integration/IsGrantedOutput.cs
  4. 43
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationService.cs
  5. 36
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.Generated.cs
  6. 7
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationClientProxy.cs
  7. 8
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs
  8. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.cs
  9. 155
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json
  10. 1
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj
  11. 35
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/Integration/PermissionIntegrationController.cs

13
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<IsGrantedOutput> IsGrantedAsync(IsGrantedInput input);
Task<List<IsGrantedOutput>> IsGrantedAsync(List<IsGrantedInput> input);
}

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

11
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<string> GrantedPermissionNames { get; set; }
}

43
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<IsGrantedOutput> 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<List<IsGrantedOutput>> IsGrantedAsync(List<IsGrantedInput> input)
{
var result = new List<IsGrantedOutput>();
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;
}
}

36
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>, IPermissionIntegrationService
{
public virtual async Task<IsGrantedOutput> IsGrantedAsync(IsGrantedInput input)
{
return await RequestAsync<IsGrantedOutput>(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue
{
{ typeof(IsGrantedInput), input }
});
}
public async Task<List<IsGrantedOutput>> IsGrantedAsync(List<IsGrantedInput> input)
{
return await RequestAsync<List<IsGrantedOutput>>(nameof(IsGrantedAsync), new ClientProxyRequestTypeValue
{
{ typeof(IsGrantedInput), input }
});
}
}

7
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
{
}

8
modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/PermissionsClientProxy.Generated.cs → 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))]

2
modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/PermissionsClientProxy.cs → 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
{

155
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<Volo.Abp.PermissionManagement.Integration.IsGrantedInput>",
"typeSimple": "[Volo.Abp.PermissionManagement.Integration.IsGrantedInput]",
"isOptional": false,
"defaultValue": null
}
],
"returnValue": {
"type": "System.Collections.Generic.List<Volo.Abp.PermissionManagement.Integration.IsGrantedOutput>",
"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"
}
}
}
}
}

1
modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj

@ -19,4 +19,5 @@
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.csproj" />
</ItemGroup>
</Project>

35
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<IsGrantedOutput> IsGrantedAsync(IsGrantedInput input)
{
return PermissionIntegrationService.IsGrantedAsync(input);
}
[HttpPost]
[Route("is-granted/multiple")]
public virtual Task<List<IsGrantedOutput>> IsGrantedAsync(List<IsGrantedInput> input)
{
return PermissionIntegrationService.IsGrantedAsync(input);
}
}
Loading…
Cancel
Save