diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo.Abp.Permissions.Application.Contracts.csproj b/src/Volo.Abp.Permissions.Application.Contracts/Volo.Abp.Permissions.Application.Contracts.csproj index e77e4c6bcd..4ecbbf92c1 100644 --- a/src/Volo.Abp.Permissions.Application.Contracts/Volo.Abp.Permissions.Application.Contracts.csproj +++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo.Abp.Permissions.Application.Contracts.csproj @@ -14,6 +14,7 @@ + diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsDomainSharedModule.cs b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsApplicationContractsModule.cs similarity index 55% rename from src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsDomainSharedModule.cs rename to src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsApplicationContractsModule.cs index 18cdb53190..4c49d556b2 100644 --- a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsDomainSharedModule.cs +++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsApplicationContractsModule.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Authorization.Permissions; using Volo.Abp.Modularity; namespace Volo.Abp.Permissions @@ -9,7 +10,12 @@ namespace Volo.Abp.Permissions { public override void ConfigureServices(IServiceCollection services) { - services.AddAssemblyOf(); + services.Configure(options => + { + options.DefinitionProviders.Add(); + }); + + services.AddAssemblyOf(); } } } diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/IdentityPermissions.cs b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/IdentityPermissions.cs new file mode 100644 index 0000000000..cea8d7504f --- /dev/null +++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/IdentityPermissions.cs @@ -0,0 +1,13 @@ +namespace Volo.Abp.Permissions +{ + public static class PermissionPermissions + { + public const string GroupName = "AbpPermissions"; + + public static class Permissions + { + public const string Default = GroupName + ".Permissions"; + public const string Update = Default + ".Update"; + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/PermissionsPermissionDefinitionProvider.cs b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/PermissionsPermissionDefinitionProvider.cs new file mode 100644 index 0000000000..6391ae2087 --- /dev/null +++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/PermissionsPermissionDefinitionProvider.cs @@ -0,0 +1,15 @@ +using Volo.Abp.Authorization.Permissions; + +namespace Volo.Abp.Permissions +{ + public class PermissionsPermissionDefinitionProvider : PermissionDefinitionProvider + { + public override void Define(IPermissionDefinitionContext context) + { + var group = context.AddGroup(PermissionPermissions.GroupName); + + var permissions = group.AddPermission(PermissionPermissions.Permissions.Default); + permissions.AddChild(PermissionPermissions.Permissions.Update); + } + } +} diff --git a/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs b/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs index dfadd3a946..5bce2fb17a 100644 --- a/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs +++ b/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs @@ -1,10 +1,12 @@ using System.Collections.Generic; using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Services; using Volo.Abp.Authorization.Permissions; namespace Volo.Abp.Permissions { + [Authorize(PermissionPermissions.Permissions.Default)] public class PermissionAppService : ApplicationService, IPermissionAppService { private readonly IPermissionManager _permissionManager; @@ -66,6 +68,7 @@ namespace Volo.Abp.Permissions return result; } + [Authorize(PermissionPermissions.Permissions.Update)] public async Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) { foreach (var permission in input.Permissions)