Browse Source

Add `Volo.Abp.PermissionManagement.Domain.OpenIddict`.

pull/12084/head
maliming 4 years ago
parent
commit
407d5db6f1
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 7
      modules/openiddict/Volo.Abp.OpenIddict.sln
  2. 3
      modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/FodyWeavers.xml
  3. 30
      modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/FodyWeavers.xsd
  4. 22
      modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/Volo.Abp.PermissionManagement.Domain.OpenIddict.csproj
  5. 21
      modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/Volo/Abp/PermissionManagement/OpenIddict/AbpPermissionManagementDomainOpenIddictModule.cs
  6. 55
      modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/Volo/Abp/PermissionManagement/OpenIddict/ApplicationPermissionManagementProvider.cs
  7. 1
      nupkg/common.ps1

7
modules/openiddict/Volo.Abp.OpenIddict.sln

@ -37,6 +37,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenIddict.Demo.API", "app\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenIddict.Demo.Client.BlazorWASM", "app\OpenIddict.Demo.Client.BlazorWASM\OpenIddict.Demo.Client.BlazorWASM.csproj", "{F3853F2B-72D4-496C-B59C-87E2759AD79B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.Domain.OpenIddict", "src\Volo.Abp.PermissionManagement.Domain.OpenIddict\Volo.Abp.PermissionManagement.Domain.OpenIddict.csproj", "{674D0A62-4F7B-436C-83A9-AA8FE03F3A11}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -99,6 +101,10 @@ Global
{F3853F2B-72D4-496C-B59C-87E2759AD79B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F3853F2B-72D4-496C-B59C-87E2759AD79B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F3853F2B-72D4-496C-B59C-87E2759AD79B}.Release|Any CPU.Build.0 = Release|Any CPU
{674D0A62-4F7B-436C-83A9-AA8FE03F3A11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{674D0A62-4F7B-436C-83A9-AA8FE03F3A11}.Debug|Any CPU.Build.0 = Debug|Any CPU
{674D0A62-4F7B-436C-83A9-AA8FE03F3A11}.Release|Any CPU.ActiveCfg = Release|Any CPU
{674D0A62-4F7B-436C-83A9-AA8FE03F3A11}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -118,6 +124,7 @@ Global
{1EF0F35E-65BE-4994-9BC4-9D3992A9B05C} = {2B5CD179-FF7B-428F-98F6-2ADBB9538D18}
{70FD6E90-BBE8-4DA1-AE07-55064803225B} = {2B5CD179-FF7B-428F-98F6-2ADBB9538D18}
{F3853F2B-72D4-496C-B59C-87E2759AD79B} = {2B5CD179-FF7B-428F-98F6-2ADBB9538D18}
{674D0A62-4F7B-436C-83A9-AA8FE03F3A11} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C09128AF-C73F-ED7D-33F5-69BF7D934D50}

3
modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/FodyWeavers.xml

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>

30
modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/FodyWeavers.xsd

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

22
modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/Volo.Abp.PermissionManagement.Domain.OpenIddict.csproj

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\configureawait.props" />
<Import Project="..\..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>Volo.Abp.PermissionManagement.Domain.OpenIddict</AssemblyName>
<PackageId>Volo.Abp.PermissionManagement.Domain.OpenIddict</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.OpenIddict.Domain.Shared\Volo.Abp.OpenIddict.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\permission-management\src\Volo.Abp.PermissionManagement.Domain\Volo.Abp.PermissionManagement.Domain.csproj" />
</ItemGroup>
</Project>

21
modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/Volo/Abp/PermissionManagement/OpenIddict/AbpPermissionManagementDomainOpenIddictModule.cs

@ -0,0 +1,21 @@
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Modularity;
using Volo.Abp.OpenIddict;
namespace Volo.Abp.PermissionManagement.OpenIddict;
[DependsOn(
typeof(AbpOpenIddictDomainSharedModule),
typeof(AbpPermissionManagementDomainModule)
)]
public class AbpPermissionManagementDomainOpenIddictModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<PermissionManagementOptions>(options =>
{
options.ManagementProviders.Add<ApplicationPermissionManagementProvider>();
options.ProviderPolicies[ClientPermissionValueProvider.ProviderName] = "OpenIddictPro.Application.ManagePermissions";
});
}
}

55
modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict/Volo/Abp/PermissionManagement/OpenIddict/ApplicationPermissionManagementProvider.cs

@ -0,0 +1,55 @@
using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Guids;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.PermissionManagement.OpenIddict;
public class ApplicationPermissionManagementProvider : PermissionManagementProvider
{
public override string Name => ClientPermissionValueProvider.ProviderName;
public ApplicationPermissionManagementProvider(
IPermissionGrantRepository permissionGrantRepository,
IGuidGenerator guidGenerator,
ICurrentTenant currentTenant)
: base(
permissionGrantRepository,
guidGenerator,
currentTenant)
{
}
public override Task<PermissionValueProviderGrantInfo> CheckAsync(string name, string providerName, string providerKey)
{
using (CurrentTenant.Change(null))
{
return base.CheckAsync(name, providerName, providerKey);
}
}
protected override Task GrantAsync(string name, string providerKey)
{
using (CurrentTenant.Change(null))
{
return base.GrantAsync(name, providerKey);
}
}
protected override Task RevokeAsync(string name, string providerKey)
{
using (CurrentTenant.Change(null))
{
return base.RevokeAsync(name, providerKey);
}
}
public override Task SetAsync(string name, string providerKey, bool isGranted)
{
using (CurrentTenant.Change(null))
{
return base.SetAsync(name, providerKey, isGranted);
}
}
}

1
nupkg/common.ps1

@ -347,6 +347,7 @@ $projects = (
"modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared",
"modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore",
"modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB",
"modules/openiddict/src/Volo.Abp.PermissionManagement.Domain.OpenIddict",
# modules/permission-management
"modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts",

Loading…
Cancel
Save