Browse Source

Delete Volo.Abp.Permissions package.

pull/208/head
Halil İbrahim Kalkan 9 years ago
parent
commit
c943ead0fe
  1. 13
      Volo.Abp.sln
  2. 1
      src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs
  3. 2
      src/AbpDesk/AbpDesk.Web.Mvc/Controllers/AuthTestController.cs
  4. 3
      src/AbpDesk/AbpDesk.Web.Mvc/Permissions/AbpDeskPermissionDefinitionProvider.cs
  5. 38
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationModule.cs
  6. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionChecker.cs
  7. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs
  8. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionManager.cs
  9. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionProvider.cs
  10. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs
  11. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionValueProvider.cs
  12. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullPermissionStore.cs
  13. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionChecker.cs
  14. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionCheckerExtensions.cs
  15. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinition.cs
  16. 4
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs
  17. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionManager.cs
  18. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionProvider.cs
  19. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionGrantInfo.cs
  20. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionGroupDefinition.cs
  21. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionOptions.cs
  22. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProvider.cs
  23. 2
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProviderGrantInfo.cs
  24. 12
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/RequiresPermissionAttribute.cs
  25. 20
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/RequiresPermissionHandler.cs
  26. 9
      src/Volo.Abp.Authorization/Volo/Abp/Authorization/RequiresPermissionRequirement.cs
  27. 1
      src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/RolePermissionManagementProvider.cs
  28. 11
      src/Volo.Abp.Identity.Domain/Volo/Abp/Permissions/RolePermissionManagerExtensions.cs
  29. 1
      src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs
  30. 2
      src/Volo.Abp.Permissions.Domain/Volo.Abp.Permissions.Domain.csproj
  31. 3
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/AbpPermissionsDomainModule.cs
  32. 1
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManagementProvider.cs
  33. 6
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManager.cs
  34. 1
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManagementProvider.cs
  35. 13
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManager.cs
  36. 1
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionStore.cs
  37. 13
      src/Volo.Abp.Permissions/Volo/Abp/Permissions/AbpPermissionsModule.cs
  38. 2
      src/Volo.Abp.Session/Volo.Abp.Session.csproj
  39. 5
      src/Volo.Abp.Session/Volo/Abp/Session/AbpSessionModule.cs
  40. 2
      src/Volo.Abp.Session/Volo/Abp/Session/RolePermissionValueProvider.cs
  41. 2
      src/Volo.Abp.Session/Volo/Abp/Session/UserPermissionValueProvider.cs
  42. 2
      src/Volo.Abp/Volo/Abp/AbpCommonModule.cs
  43. 1
      test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs
  44. 3
      test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/IdentityTestPermissionDefinitionProvider.cs
  45. 16
      test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/PermissionManager_Tests.cs
  46. 1
      test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/AbpPermissionTestModule.cs
  47. 1
      test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/PermissionChecker_User_Tests.cs
  48. 1
      test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/PermissionManager_Basic_Tests.cs
  49. 4
      test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/TestPermissionDefinitionProvider.cs

13
Volo.Abp.sln

@ -258,8 +258,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Settings.Domain.Sh
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Abp.Settings", "Abp.Settings", "{D62B8D43-B8D9-4FC6-97E2-DC54CD765915}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Abp.Settings", "Abp.Settings", "{D62B8D43-B8D9-4FC6-97E2-DC54CD765915}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions", "src\Volo.Abp.Permissions\Volo.Abp.Permissions.csproj", "{0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Abp.Permissions", "Abp.Permissions", "{055F4AC0-46C4-4E99-89CD-0F30D4A97382}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Abp.Permissions", "Abp.Permissions", "{055F4AC0-46C4-4E99-89CD-0F30D4A97382}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Domain", "src\Volo.Abp.Permissions.Domain\Volo.Abp.Permissions.Domain.csproj", "{D77E0662-8404-43C5-9C46-6289EA207A40}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Domain", "src\Volo.Abp.Permissions.Domain\Volo.Abp.Permissions.Domain.csproj", "{D77E0662-8404-43C5-9C46-6289EA207A40}"
@ -270,11 +268,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Entity
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Tests", "test\Volo.Abp.Permissions.Tests\Volo.Abp.Permissions.Tests.csproj", "{7B4D2BEB-DE3E-4533-8CD4-7BBB30414647}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Tests", "test\Volo.Abp.Permissions.Tests\Volo.Abp.Permissions.Tests.csproj", "{7B4D2BEB-DE3E-4533-8CD4-7BBB30414647}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.Web", "src\Volo.Abp.Permissions.Web\Volo.Abp.Permissions.Web.csproj", "{8859CFE4-BC7F-4F29-B6B5-A9457435CC32}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Web", "src\Volo.Abp.Permissions.Web\Volo.Abp.Permissions.Web.csproj", "{8859CFE4-BC7F-4F29-B6B5-A9457435CC32}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.Application.Contracts", "src\Volo.Abp.Permissions.Application.Contracts\Volo.Abp.Permissions.Application.Contracts.csproj", "{837ABFF5-66EE-486A-8023-8DD3EE7D7D96}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Application.Contracts", "src\Volo.Abp.Permissions.Application.Contracts\Volo.Abp.Permissions.Application.Contracts.csproj", "{837ABFF5-66EE-486A-8023-8DD3EE7D7D96}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.Application", "src\Volo.Abp.Permissions.Application\Volo.Abp.Permissions.Application.csproj", "{90197499-CBB6-4C8C-90E6-8718CD755C04}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Application", "src\Volo.Abp.Permissions.Application\Volo.Abp.Permissions.Application.csproj", "{90197499-CBB6-4C8C-90E6-8718CD755C04}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -690,10 +688,6 @@ Global
{27F990E2-6820-4159-B54A-59C8ADED8D28}.Debug|Any CPU.Build.0 = Debug|Any CPU {27F990E2-6820-4159-B54A-59C8ADED8D28}.Debug|Any CPU.Build.0 = Debug|Any CPU
{27F990E2-6820-4159-B54A-59C8ADED8D28}.Release|Any CPU.ActiveCfg = Release|Any CPU {27F990E2-6820-4159-B54A-59C8ADED8D28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{27F990E2-6820-4159-B54A-59C8ADED8D28}.Release|Any CPU.Build.0 = Release|Any CPU {27F990E2-6820-4159-B54A-59C8ADED8D28}.Release|Any CPU.Build.0 = Release|Any CPU
{0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}.Release|Any CPU.Build.0 = Release|Any CPU
{D77E0662-8404-43C5-9C46-6289EA207A40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D77E0662-8404-43C5-9C46-6289EA207A40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D77E0662-8404-43C5-9C46-6289EA207A40}.Debug|Any CPU.Build.0 = Debug|Any CPU {D77E0662-8404-43C5-9C46-6289EA207A40}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D77E0662-8404-43C5-9C46-6289EA207A40}.Release|Any CPU.ActiveCfg = Release|Any CPU {D77E0662-8404-43C5-9C46-6289EA207A40}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -847,7 +841,6 @@ Global
{61422EC8-8FFB-48EA-B4B5-527E29077930} = {37087D1B-3693-4E96-983D-A69F210BDE53} {61422EC8-8FFB-48EA-B4B5-527E29077930} = {37087D1B-3693-4E96-983D-A69F210BDE53}
{27F990E2-6820-4159-B54A-59C8ADED8D28} = {D62B8D43-B8D9-4FC6-97E2-DC54CD765915} {27F990E2-6820-4159-B54A-59C8ADED8D28} = {D62B8D43-B8D9-4FC6-97E2-DC54CD765915}
{D62B8D43-B8D9-4FC6-97E2-DC54CD765915} = {3B481ACC-5BB3-4189-880C-5F7A27EAEB70} {D62B8D43-B8D9-4FC6-97E2-DC54CD765915} = {3B481ACC-5BB3-4189-880C-5F7A27EAEB70}
{0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8}
{055F4AC0-46C4-4E99-89CD-0F30D4A97382} = {3B481ACC-5BB3-4189-880C-5F7A27EAEB70} {055F4AC0-46C4-4E99-89CD-0F30D4A97382} = {3B481ACC-5BB3-4189-880C-5F7A27EAEB70}
{D77E0662-8404-43C5-9C46-6289EA207A40} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382} {D77E0662-8404-43C5-9C46-6289EA207A40} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382}
{E4D0326C-515D-46FA-AF7E-1AC32155BD03} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382} {E4D0326C-515D-46FA-AF7E-1AC32155BD03} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382}

1
src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs

@ -18,6 +18,7 @@ using Volo.Abp.AspNetCore.MultiTenancy;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.Bundling; using Volo.Abp.AspNetCore.Mvc.Bundling;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Autofac; using Volo.Abp.Autofac;
using Volo.Abp.Identity; using Volo.Abp.Identity;
using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore;

2
src/AbpDesk/AbpDesk.Web.Mvc/Controllers/AuthTestController.cs

@ -36,7 +36,7 @@ namespace AbpDesk.Web.Mvc.Controllers
return Content("OK: AllowedPermission"); return Content("OK: AllowedPermission");
} }
[RequirePermission("NotAllowedPermission")] [RequiresPermission("NotAllowedPermission")]
public ContentResult NotAllowedPermissionTest() public ContentResult NotAllowedPermissionTest()
{ {
return Content("OK: NotAllowedPermission"); return Content("OK: NotAllowedPermission");

3
src/AbpDesk/AbpDesk.Web.Mvc/Permissions/AbpDeskPermissionDefinitionProvider.cs

@ -1,4 +1,5 @@
using Volo.Abp.Permissions; using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Permissions;
namespace AbpDesk.Web.Mvc.Permissions namespace AbpDesk.Web.Mvc.Permissions
{ {

38
src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationModule.cs

@ -1,6 +1,4 @@
using System; using Microsoft.AspNetCore.Authorization;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
@ -14,7 +12,7 @@ namespace Volo.Abp.Authorization
{ {
options.AddPolicy("AllowedPermission", policy => options.AddPolicy("AllowedPermission", policy =>
{ {
policy.Requirements.Add(new RequirePermissionRequirement policy.Requirements.Add(new RequiresPermissionRequirement
{ {
PermissionName = "AllowedPermission" PermissionName = "AllowedPermission"
}); });
@ -22,41 +20,13 @@ namespace Volo.Abp.Authorization
options.AddPolicy("NotAllowedPermission", policy => options.AddPolicy("NotAllowedPermission", policy =>
{ {
policy.Requirements.Add(new RequirePermissionRequirement { PermissionName = "NotAllowedPermission" }); policy.Requirements.Add(new RequiresPermissionRequirement { PermissionName = "NotAllowedPermission" });
}); });
}); });
services.AddSingleton<IAuthorizationHandler, RequirePermissionHandler>(); services.AddSingleton<IAuthorizationHandler, RequiresPermissionHandler>();
services.AddAssemblyOf<AbpAuthorizationModule>(); services.AddAssemblyOf<AbpAuthorizationModule>();
} }
} }
public class RequirePermissionRequirement : IAuthorizationRequirement
{
public string PermissionName { get; set; }
}
public class RequirePermissionAttribute : AuthorizeAttribute
{
public RequirePermissionAttribute(string permissionName)
{
Policy = permissionName;
}
}
public class RequirePermissionHandler : AuthorizationHandler<RequirePermissionRequirement>
{
protected override Task HandleRequirementAsync(
AuthorizationHandlerContext context,
RequirePermissionRequirement requirement)
{
if (requirement.PermissionName == "AllowedPermission")
{
context.Succeed(requirement);
}
return Task.CompletedTask;
}
}
} }

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionChecker.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionChecker.cs

@ -1,7 +1,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using JetBrains.Annotations; using JetBrains.Annotations;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public interface IPermissionChecker public interface IPermissionChecker
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionContext.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs

@ -1,6 +1,6 @@
using JetBrains.Annotations; using JetBrains.Annotations;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public interface IPermissionDefinitionContext public interface IPermissionDefinitionContext
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionManager.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionManager.cs

@ -1,7 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using JetBrains.Annotations; using JetBrains.Annotations;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public interface IPermissionDefinitionManager public interface IPermissionDefinitionManager
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionProvider.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionProvider.cs

@ -1,6 +1,6 @@
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public interface IPermissionDefinitionProvider : ISingletonDependency public interface IPermissionDefinitionProvider : ISingletonDependency
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionStore.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs

@ -1,7 +1,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using JetBrains.Annotations; using JetBrains.Annotations;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public interface IPermissionStore public interface IPermissionStore
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionValueProvider.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionValueProvider.cs

@ -1,7 +1,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public interface IPermissionValueProvider : ISingletonDependency public interface IPermissionValueProvider : ISingletonDependency
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/NullPermissionStore.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullPermissionStore.cs

@ -3,7 +3,7 @@ using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class NullPermissionStore : IPermissionStore, ISingletonDependency public class NullPermissionStore : IPermissionStore, ISingletonDependency
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionChecker.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionChecker.cs

@ -6,7 +6,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class PermissionChecker : IPermissionChecker, ISingletonDependency public class PermissionChecker : IPermissionChecker, ISingletonDependency
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionCheckerExtensions.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionCheckerExtensions.cs

@ -1,6 +1,6 @@
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public static class PermissionCheckerExtensions public static class PermissionCheckerExtensions
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinition.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinition.cs

@ -1,7 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class PermissionDefinition public class PermissionDefinition
{ {

4
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionContext.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs

@ -1,8 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class PermissionDefinitionContext : IPermissionDefinitionContext public class PermissionDefinitionContext : IPermissionDefinitionContext
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionManager.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionManager.cs

@ -6,7 +6,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class PermissionDefinitionManager : IPermissionDefinitionManager, ISingletonDependency public class PermissionDefinitionManager : IPermissionDefinitionManager, ISingletonDependency
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionProvider.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionProvider.cs

@ -1,4 +1,4 @@
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public abstract class PermissionDefinitionProvider : IPermissionDefinitionProvider public abstract class PermissionDefinitionProvider : IPermissionDefinitionProvider
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionGrantInfo.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionGrantInfo.cs

@ -1,6 +1,6 @@
using JetBrains.Annotations; using JetBrains.Annotations;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class PermissionGrantInfo public class PermissionGrantInfo
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionGroupDefinition.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionGroupDefinition.cs

@ -1,7 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class PermissionGroupDefinition //TODO: Consider to make possible a group have sub groups public class PermissionGroupDefinition //TODO: Consider to make possible a group have sub groups
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionOptions.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionOptions.cs

@ -1,6 +1,6 @@
using Volo.Abp.Collections; using Volo.Abp.Collections;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class PermissionOptions public class PermissionOptions
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionValueProvider.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProvider.cs

@ -1,6 +1,6 @@
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public abstract class PermissionValueProvider : IPermissionValueProvider public abstract class PermissionValueProvider : IPermissionValueProvider
{ {

2
src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionValueProviderGrantInfo.cs → src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProviderGrantInfo.cs

@ -1,6 +1,6 @@
using JetBrains.Annotations; using JetBrains.Annotations;
namespace Volo.Abp.Permissions namespace Volo.Abp.Authorization.Permissions
{ {
public class PermissionValueProviderGrantInfo public class PermissionValueProviderGrantInfo
{ {

12
src/Volo.Abp.Authorization/Volo/Abp/Authorization/RequiresPermissionAttribute.cs

@ -0,0 +1,12 @@
using Microsoft.AspNetCore.Authorization;
namespace Volo.Abp.Authorization
{
public class RequiresPermissionAttribute : AuthorizeAttribute
{
public RequiresPermissionAttribute(string permissionName)
{
Policy = permissionName;
}
}
}

20
src/Volo.Abp.Authorization/Volo/Abp/Authorization/RequiresPermissionHandler.cs

@ -0,0 +1,20 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
namespace Volo.Abp.Authorization
{
public class RequiresPermissionHandler : AuthorizationHandler<RequiresPermissionRequirement>
{
protected override Task HandleRequirementAsync(
AuthorizationHandlerContext context,
RequiresPermissionRequirement requirement)
{
if (requirement.PermissionName == "AllowedPermission")
{
context.Succeed(requirement);
}
return Task.CompletedTask;
}
}
}

9
src/Volo.Abp.Authorization/Volo/Abp/Authorization/RequiresPermissionRequirement.cs

@ -0,0 +1,9 @@
using Microsoft.AspNetCore.Authorization;
namespace Volo.Abp.Authorization
{
public class RequiresPermissionRequirement : IAuthorizationRequirement
{
public string PermissionName { get; set; }
}
}

1
src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/RolePermissionManagementProvider.cs

@ -1,5 +1,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Guids; using Volo.Abp.Guids;
using Volo.Abp.Permissions; using Volo.Abp.Permissions;

11
src/Volo.Abp.Identity.Domain/Volo/Abp/Permissions/RolePermissionManagerExtensions.cs

@ -8,6 +8,13 @@ namespace Volo.Abp.Permissions
{ {
public static class RolePermissionManagerExtensions public static class RolePermissionManagerExtensions
{ {
public static Task<PermissionWithGrantedProviders> GetForRoleAsync([NotNull] this IPermissionManager permissionManager, string roleName, string permissionName)
{
Check.NotNull(permissionManager, nameof(permissionManager));
return permissionManager.GetAsync(permissionName, RolePermissionManagementProvider.ProviderName, roleName);
}
public static Task<List<PermissionWithGrantedProviders>> GetAllForRoleAsync([NotNull] this IPermissionManager permissionManager, string roleName) public static Task<List<PermissionWithGrantedProviders>> GetAllForRoleAsync([NotNull] this IPermissionManager permissionManager, string roleName)
{ {
Check.NotNull(permissionManager, nameof(permissionManager)); Check.NotNull(permissionManager, nameof(permissionManager));
@ -15,11 +22,11 @@ namespace Volo.Abp.Permissions
return permissionManager.GetAllAsync(RolePermissionManagementProvider.ProviderName, roleName); return permissionManager.GetAllAsync(RolePermissionManagementProvider.ProviderName, roleName);
} }
public static Task SetForRoleAsync([NotNull] this IPermissionManager permissionManager, string roleName, [NotNull] string name, bool isGranted) public static Task SetForRoleAsync([NotNull] this IPermissionManager permissionManager, string roleName, [NotNull] string permissionName, bool isGranted)
{ {
Check.NotNull(permissionManager, nameof(permissionManager)); Check.NotNull(permissionManager, nameof(permissionManager));
return permissionManager.SetAsync(name, RolePermissionManagementProvider.ProviderName, roleName, isGranted); return permissionManager.SetAsync(permissionName, RolePermissionManagementProvider.ProviderName, roleName, isGranted);
} }
} }
} }

1
src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Authorization.Permissions;
namespace Volo.Abp.Permissions namespace Volo.Abp.Permissions
{ {

2
src/Volo.Abp.Permissions.Domain/Volo.Abp.Permissions.Domain.csproj

@ -14,9 +14,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Volo.Abp.Authorization\Volo.Abp.Authorization.csproj" />
<ProjectReference Include="..\Volo.Abp.Ddd\Volo.Abp.Ddd.csproj" /> <ProjectReference Include="..\Volo.Abp.Ddd\Volo.Abp.Ddd.csproj" />
<ProjectReference Include="..\Volo.Abp.Permissions.Domain.Shared\Volo.Abp.Permissions.Domain.Shared.csproj" /> <ProjectReference Include="..\Volo.Abp.Permissions.Domain.Shared\Volo.Abp.Permissions.Domain.Shared.csproj" />
<ProjectReference Include="..\Volo.Abp.Permissions\Volo.Abp.Permissions.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

3
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/AbpPermissionsDomainModule.cs

@ -1,9 +1,10 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Authorization;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
namespace Volo.Abp.Permissions namespace Volo.Abp.Permissions
{ {
[DependsOn(typeof(AbpPermissionsModule))] [DependsOn(typeof(AbpAuthorizationModule))]
[DependsOn(typeof(AbpDddModule))] [DependsOn(typeof(AbpDddModule))]
[DependsOn(typeof(AbpPermissionsDomainSharedModule))] [DependsOn(typeof(AbpPermissionsDomainSharedModule))]
public class AbpPermissionsDomainModule : AbpModule public class AbpPermissionsDomainModule : AbpModule

1
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManagementProvider.cs

@ -1,5 +1,6 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Permissions namespace Volo.Abp.Permissions

6
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManager.cs

@ -4,12 +4,14 @@ using JetBrains.Annotations;
namespace Volo.Abp.Permissions namespace Volo.Abp.Permissions
{ {
//TODO: Write extension methods for simple IsGranted check
public interface IPermissionManager public interface IPermissionManager
{ {
Task<PermissionWithGrantedProviders> GetAsync(string name, string providerName, string providerKey); Task<PermissionWithGrantedProviders> GetAsync(string permissionName, string providerName, string providerKey);
Task<List<PermissionWithGrantedProviders>> GetAllAsync([NotNull] string providerName, [NotNull] string providerKey); Task<List<PermissionWithGrantedProviders>> GetAllAsync([NotNull] string providerName, [NotNull] string providerKey);
Task SetAsync(string name, string providerName, string providerKey, bool isGranted); Task SetAsync(string permissionName, string providerName, string providerKey, bool isGranted);
} }
} }

1
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManagementProvider.cs

@ -1,4 +1,5 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Guids; using Volo.Abp.Guids;
namespace Volo.Abp.Permissions namespace Volo.Abp.Permissions

13
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManager.cs

@ -4,6 +4,7 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids; using Volo.Abp.Guids;
@ -44,9 +45,9 @@ namespace Volo.Abp.Permissions
); );
} }
public async Task<PermissionWithGrantedProviders> GetAsync(string name, string providerName, string providerKey) public async Task<PermissionWithGrantedProviders> GetAsync(string permissionName, string providerName, string providerKey)
{ {
return await GetInternalAsync(PermissionDefinitionManager.Get(name), providerName, providerKey); return await GetInternalAsync(PermissionDefinitionManager.Get(permissionName), providerName, providerKey);
} }
public async Task<List<PermissionWithGrantedProviders>> GetAllAsync(string providerName, string providerKey) public async Task<List<PermissionWithGrantedProviders>> GetAllAsync(string providerName, string providerKey)
@ -61,9 +62,9 @@ namespace Volo.Abp.Permissions
return results; return results;
} }
public async Task SetAsync(string name, string providerName, string providerKey, bool isGranted) public async Task SetAsync(string permissionName, string providerName, string providerKey, bool isGranted)
{ {
var currentGrantInfo = await GetAsync(name, providerName, providerKey); var currentGrantInfo = await GetAsync(permissionName, providerName, providerKey);
if (currentGrantInfo.IsGranted == isGranted) if (currentGrantInfo.IsGranted == isGranted)
{ {
return; return;
@ -72,7 +73,7 @@ namespace Volo.Abp.Permissions
if (currentGrantInfo.IsGranted == false) if (currentGrantInfo.IsGranted == false)
{ {
var provider = ManagementProviders.FirstOrDefault(m => m.Name == providerName); var provider = ManagementProviders.FirstOrDefault(m => m.Name == providerName);
await provider.GrantAsync(name, providerKey); await provider.GrantAsync(permissionName, providerKey);
} }
else else
{ {
@ -82,7 +83,7 @@ namespace Volo.Abp.Permissions
} }
var provider = ManagementProviders.FirstOrDefault(m => m.Name == providerName); var provider = ManagementProviders.FirstOrDefault(m => m.Name == providerName);
await provider.RevokeAsync(name, providerKey); await provider.RevokeAsync(permissionName, providerKey);
} }
} }

1
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionStore.cs

@ -1,4 +1,5 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Permissions namespace Volo.Abp.Permissions

13
src/Volo.Abp.Permissions/Volo/Abp/Permissions/AbpPermissionsModule.cs

@ -1,13 +0,0 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
namespace Volo.Abp.Permissions
{
public class AbpPermissionsModule : AbpModule
{
public override void ConfigureServices(IServiceCollection services)
{
services.AddAssemblyOf<AbpPermissionsModule>();
}
}
}

2
src/Volo.Abp.Session/Volo.Abp.Session.csproj

@ -14,8 +14,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Volo.Abp.Authorization\Volo.Abp.Authorization.csproj" />
<ProjectReference Include="..\Volo.Abp.Core\Volo.Abp.Core.csproj" /> <ProjectReference Include="..\Volo.Abp.Core\Volo.Abp.Core.csproj" />
<ProjectReference Include="..\Volo.Abp.Permissions\Volo.Abp.Permissions.csproj" />
<ProjectReference Include="..\Volo.Abp.Security\Volo.Abp.Security.csproj" /> <ProjectReference Include="..\Volo.Abp.Security\Volo.Abp.Security.csproj" />
<ProjectReference Include="..\Volo.Abp.Settings\Volo.Abp.Settings.csproj" /> <ProjectReference Include="..\Volo.Abp.Settings\Volo.Abp.Settings.csproj" />
</ItemGroup> </ItemGroup>

5
src/Volo.Abp.Session/Volo/Abp/Session/AbpSessionModule.cs

@ -1,6 +1,7 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Authorization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.Permissions;
using Volo.Abp.Security; using Volo.Abp.Security;
using Volo.Abp.Settings; using Volo.Abp.Settings;
@ -8,7 +9,7 @@ namespace Volo.Abp.Session
{ {
[DependsOn(typeof(AbpSecurityModule))] [DependsOn(typeof(AbpSecurityModule))]
[DependsOn(typeof(AbpSettingsModule))] [DependsOn(typeof(AbpSettingsModule))]
[DependsOn(typeof(AbpPermissionsModule))] [DependsOn(typeof(AbpAuthorizationModule))]
public class AbpSessionModule : AbpModule public class AbpSessionModule : AbpModule
{ {
public override void ConfigureServices(IServiceCollection services) public override void ConfigureServices(IServiceCollection services)

2
src/Volo.Abp.Session/Volo/Abp/Session/RolePermissionValueProvider.cs

@ -1,6 +1,6 @@
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Permissions; using Volo.Abp.Authorization.Permissions;
namespace Volo.Abp.Session namespace Volo.Abp.Session
{ {

2
src/Volo.Abp.Session/Volo/Abp/Session/UserPermissionValueProvider.cs

@ -1,5 +1,5 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Permissions; using Volo.Abp.Authorization.Permissions;
namespace Volo.Abp.Session namespace Volo.Abp.Session
{ {

2
src/Volo.Abp/Volo/Abp/AbpCommonModule.cs

@ -7,7 +7,6 @@ using Volo.Abp.Localization;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
using Volo.Abp.ObjectMapping; using Volo.Abp.ObjectMapping;
using Volo.Abp.Permissions;
using Volo.Abp.Security; using Volo.Abp.Security;
using Volo.Abp.Session; using Volo.Abp.Session;
using Volo.Abp.Settings; using Volo.Abp.Settings;
@ -23,7 +22,6 @@ namespace Volo.Abp
[DependsOn(typeof(AbpSecurityModule))] [DependsOn(typeof(AbpSecurityModule))]
[DependsOn(typeof(AbpSessionModule))] [DependsOn(typeof(AbpSessionModule))]
[DependsOn(typeof(AbpSettingsModule))] [DependsOn(typeof(AbpSettingsModule))]
[DependsOn(typeof(AbpPermissionsModule))]
[DependsOn(typeof(AbpDataModule))] [DependsOn(typeof(AbpDataModule))]
[DependsOn(typeof(AbpJsonModule))] [DependsOn(typeof(AbpJsonModule))]
[DependsOn(typeof(AbpVirtualFileSystemModule))] [DependsOn(typeof(AbpVirtualFileSystemModule))]

1
test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs

@ -1,6 +1,7 @@
using System; using System;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Autofac; using Volo.Abp.Autofac;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore;

3
test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/IdentityTestPermissionDefinitionProvider.cs

@ -1,4 +1,5 @@
using Volo.Abp.Permissions; using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Permissions;
namespace Volo.Abp.Identity namespace Volo.Abp.Identity
{ {

16
test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/PermissionManager_Tests.cs

@ -40,6 +40,22 @@ namespace Volo.Abp.Identity
ShouldNotHavePermission(grantInfos, TestPermissionNames.MyPermission2_ChildPermission1); ShouldNotHavePermission(grantInfos, TestPermissionNames.MyPermission2_ChildPermission1);
} }
[Fact]
public async Task Should_Grant_Permission_To_Role()
{
(await _permissionManager.GetForRoleAsync("supporter", TestPermissionNames.MyPermission2)).IsGranted.ShouldBeFalse();
await _permissionManager.SetForRoleAsync("supporter", TestPermissionNames.MyPermission2, true);
(await _permissionManager.GetForRoleAsync("supporter", TestPermissionNames.MyPermission2)).IsGranted.ShouldBeTrue();
}
[Fact]
public async Task Should_Revoke_Permission_From_Role()
{
(await _permissionManager.GetForRoleAsync("moderator", TestPermissionNames.MyPermission1)).IsGranted.ShouldBeTrue();
await _permissionManager.SetForRoleAsync("moderator", TestPermissionNames.MyPermission1, false);
(await _permissionManager.GetForRoleAsync("moderator", TestPermissionNames.MyPermission1)).IsGranted.ShouldBeFalse();
}
[Fact] [Fact]
public async Task Users_Should_Have_Configured_Values() public async Task Users_Should_Have_Configured_Values()
{ {

1
test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/AbpPermissionTestModule.cs

@ -1,6 +1,7 @@
using System; using System;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Autofac; using Volo.Abp.Autofac;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;

1
test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/PermissionChecker_User_Tests.cs

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using NSubstitute; using NSubstitute;
using Shouldly; using Shouldly;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Session; using Volo.Abp.Session;
using Xunit; using Xunit;

1
test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/PermissionManager_Basic_Tests.cs

@ -1,5 +1,6 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Shouldly; using Shouldly;
using Volo.Abp.Authorization.Permissions;
using Xunit; using Xunit;
namespace Volo.Abp.Permissions namespace Volo.Abp.Permissions

4
test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/TestPermissionDefinitionProvider.cs

@ -1,4 +1,6 @@
namespace Volo.Abp.Permissions using Volo.Abp.Authorization.Permissions;
namespace Volo.Abp.Permissions
{ {
public class TestPermissionDefinitionProvider : PermissionDefinitionProvider public class TestPermissionDefinitionProvider : PermissionDefinitionProvider
{ {

Loading…
Cancel
Save