From 0f06cf53c197f00a4e4400449b07fd1536eb0ab7 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Wed, 23 Jan 2019 17:55:34 +0300 Subject: [PATCH] Revised permission management system --- .../Abp/EventBus/IocEventHandlerFactory.cs | 8 +-- modules/identity/Volo.Abp.Identity.sln | 9 +++- .../Abp/Identity/IIdentityRoleAppService.cs | 5 -- .../Abp/Identity/IIdentityUserAppService.cs | 5 -- .../Abp/Identity/IdentityRoleAppService.cs | 19 +------ .../Abp/Identity/IdentityUserAppService.cs | 27 ++-------- .../Volo/Abp/Identity/IUserRoleFinder.cs | 10 ++++ .../Volo.Abp.Identity.Domain.csproj | 5 +- .../Abp/Identity/AbpIdentityDomainModule.cs | 8 --- .../Volo/Abp/Identity/IIdentityDataSeeder.cs | 2 - .../Volo/Abp/Identity/IdentityDataSeeder.cs | 30 ----------- .../Volo/Abp/Identity/UserRoleFinder.cs | 21 ++++++++ .../AbpIdentityHttpApiClientModule.cs | 5 +- .../Abp/Identity/HttpClientUserRoleFinder.cs | 24 +++++++++ .../Abp/Identity/IdentityRoleController.cs | 11 ---- .../Abp/Identity/IdentityUserController.cs | 11 ---- .../Pages/Identity/Roles/index.js | 2 +- .../IdentityPermissionAppServiceGateway.cs | 51 ------------------- ...ermissionManagement.Domain.Identity.csproj | 21 ++++++++ ...ermissionManagementDomainIdentityModule.cs | 16 ++++++ .../RolePermissionManagementProvider.cs | 14 ++--- .../UserPermissionManagementProvider.cs | 3 +- .../RolePermissionManagerExtensions.cs | 3 +- .../UserPermissionManagerExtensions.cs | 3 +- .../Volo.Abp.Identity.Domain.Tests.csproj | 1 + .../Identity/AbpIdentityDomainTestModule.cs | 7 ++- .../Abp/Identity/PermissionManager_Tests.cs | 1 - .../Volo.Abp.Identity.TestBase.csproj | 1 + .../Abp/Identity/AbpIdentityTestBaseModule.cs | 4 +- .../Volo.Abp.PermissionManagement.sln | 22 ++++++-- .../IPermissionAppService.cs} | 5 +- ...bpPermissionManagementApplicationModule.cs | 6 ++- ...rviceHelper.cs => PermissionAppService.cs} | 8 +-- .../IPermissionManagementProvider.cs | 12 ++++- ...PermissionManagement.HttpApi.Client.csproj | 21 ++++++++ ...PermissionManagementHttpApiClientModule.cs | 22 ++++++++ ...lo.Abp.PermissionManagement.HttpApi.csproj | 21 ++++++++ .../AbpPermissionManagementHttpApiModule.cs | 14 +++++ .../PermissionsController.cs | 28 ++++++++++ .../AbpPermissionManagementWebModule.cs | 3 +- .../IPermissionAppServiceHelper.cs | 12 ----- ...tImplementedPermissionAppServiceGateway.cs | 18 ------- .../PermissionManagementModal.cshtml.cs | 12 ++--- .../Volo.Abp.PermissionManagement.Web.csproj | 2 +- nupkg/common.ps1 | 2 + .../AuthServer.Host/AuthServerHostModule.cs | 3 +- .../BackendAdminApp.Host.csproj | 1 + .../BackendAdminAppHostModule.cs | 2 + .../BackendAdminAppGateway.Host.csproj | 4 ++ .../BackendAdminAppGatewayHostModule.cs | 9 +++- .../appsettings.json | 5 ++ 51 files changed, 317 insertions(+), 242 deletions(-) create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IUserRoleFinder.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserRoleFinder.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientUserRoleFinder.cs delete mode 100644 modules/identity/src/Volo.Abp.Identity.Web/Permissions/IdentityPermissionAppServiceGateway.cs create mode 100644 modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.csproj create mode 100644 modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/AbpPermissionManagementDomainIdentityModule.cs rename modules/identity/src/{Volo.Abp.Identity.Domain/Volo/Abp => Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement}/Identity/RolePermissionManagementProvider.cs (80%) rename modules/identity/src/{Volo.Abp.Identity.Domain/Volo/Abp => Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement}/Identity/UserPermissionManagementProvider.cs (90%) rename modules/identity/src/{Volo.Abp.Identity.Domain/Volo/Abp/Permissions => Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement}/RolePermissionManagerExtensions.cs (95%) rename modules/identity/src/{Volo.Abp.Identity.Domain/Volo/Abp/Permissions => Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement}/UserPermissionManagerExtensions.cs (93%) rename modules/permission-management/src/{Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/IPermissionAppServiceHelper.cs => Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs} (77%) rename modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/{PermissionAppServiceHelper.cs => PermissionAppService.cs} (93%) create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo/Abp/PermissionManagement/AbpPermissionManagementHttpApiClientModule.cs create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/AbpPermissionManagementHttpApiModule.cs create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs delete mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/IPermissionAppServiceHelper.cs delete mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/NotImplementedPermissionAppServiceGateway.cs diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IocEventHandlerFactory.cs b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IocEventHandlerFactory.cs index d944afae42..e3e4748ff6 100644 --- a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IocEventHandlerFactory.cs +++ b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IocEventHandlerFactory.cs @@ -12,12 +12,12 @@ namespace Volo.Abp.EventBus { public Type HandlerType { get; } - protected IServiceScope ServiceScope { get; } + protected IHybridServiceScopeFactory ScopeFactory { get; } public IocEventHandlerFactory(IHybridServiceScopeFactory scopeFactory, Type handlerType) { + ScopeFactory = scopeFactory; HandlerType = handlerType; - ServiceScope = scopeFactory.CreateScope(); } /// @@ -26,7 +26,7 @@ namespace Volo.Abp.EventBus /// Resolved handler object public IEventHandlerDisposeWrapper GetHandler() { - var scope = ServiceScope.ServiceProvider.CreateScope(); + var scope = ScopeFactory.CreateScope(); return new EventHandlerDisposeWrapper( (IEventHandler) scope.ServiceProvider.GetRequiredService(HandlerType), () => scope.Dispose() @@ -35,7 +35,7 @@ namespace Volo.Abp.EventBus public void Dispose() { - ServiceScope.Dispose(); + } } } \ No newline at end of file diff --git a/modules/identity/Volo.Abp.Identity.sln b/modules/identity/Volo.Abp.Identity.sln index f84a829907..0d993d8bf7 100644 --- a/modules/identity/Volo.Abp.Identity.sln +++ b/modules/identity/Volo.Abp.Identity.sln @@ -35,7 +35,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Identity.TestBase" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Identity.Domain.Tests", "test\Volo.Abp.Identity.Domain.Tests\Volo.Abp.Identity.Domain.Tests.csproj", "{588B6E38-323B-4251-AC21-5F67C815A44E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Identity.AspNetCore", "src\Volo.Abp.Identity.AspNetCore\Volo.Abp.Identity.AspNetCore.csproj", "{D5EFC912-75A0-4856-9B8D-DFDD4CD66BAB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Identity.AspNetCore", "src\Volo.Abp.Identity.AspNetCore\Volo.Abp.Identity.AspNetCore.csproj", "{D5EFC912-75A0-4856-9B8D-DFDD4CD66BAB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.Domain.Identity", "src\Volo.Abp.PermissionManagement.Domain.Identity\Volo.Abp.PermissionManagement.Domain.Identity.csproj", "{736F91E7-8A70-441B-89DE-0E29A348E718}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -103,6 +105,10 @@ Global {D5EFC912-75A0-4856-9B8D-DFDD4CD66BAB}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5EFC912-75A0-4856-9B8D-DFDD4CD66BAB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D5EFC912-75A0-4856-9B8D-DFDD4CD66BAB}.Release|Any CPU.Build.0 = Release|Any CPU + {736F91E7-8A70-441B-89DE-0E29A348E718}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {736F91E7-8A70-441B-89DE-0E29A348E718}.Debug|Any CPU.Build.0 = Debug|Any CPU + {736F91E7-8A70-441B-89DE-0E29A348E718}.Release|Any CPU.ActiveCfg = Release|Any CPU + {736F91E7-8A70-441B-89DE-0E29A348E718}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -123,6 +129,7 @@ Global {D7F61598-E7CE-4DAB-99EA-C266F0423606} = {9FACAF96-A681-4B36-A938-A37DCA0B7EC1} {588B6E38-323B-4251-AC21-5F67C815A44E} = {9FACAF96-A681-4B36-A938-A37DCA0B7EC1} {D5EFC912-75A0-4856-9B8D-DFDD4CD66BAB} = {AADC5A0A-F100-4511-87DE-B74E55F5B69B} + {736F91E7-8A70-441B-89DE-0E29A348E718} = {AADC5A0A-F100-4511-87DE-B74E55F5B69B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {05740D37-83CF-4041-9C2A-D89F1B3DB5A4} diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityRoleAppService.cs b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityRoleAppService.cs index 1d29a13ef3..cc72600e16 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityRoleAppService.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityRoleAppService.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Services; -using Volo.Abp.PermissionManagement; namespace Volo.Abp.Identity { @@ -10,9 +9,5 @@ namespace Volo.Abp.Identity { //TODO: remove after a better design Task> GetAllListAsync(); - - Task GetPermissionsAsync(Guid id); - - Task UpdatePermissionsAsync(Guid id, UpdatePermissionsDto input); } } diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityUserAppService.cs b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityUserAppService.cs index 39d510f2c1..8927121bf9 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityUserAppService.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityUserAppService.cs @@ -2,7 +2,6 @@ using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; -using Volo.Abp.PermissionManagement; namespace Volo.Abp.Identity { @@ -12,10 +11,6 @@ namespace Volo.Abp.Identity Task UpdateRolesAsync(Guid id, IdentityUserUpdateRolesDto input); - Task GetPermissionsAsync(Guid id); - - Task UpdatePermissionsAsync(Guid id, UpdatePermissionsDto input); - Task FindByUsernameAsync(string username); Task FindByEmailAsync(string email); diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs index ed78156052..c91fc5ce1b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs @@ -15,16 +15,13 @@ namespace Volo.Abp.Identity { private readonly IdentityRoleManager _roleManager; private readonly IIdentityRoleRepository _roleRepository; - private readonly IPermissionAppServiceHelper _permissionAppServiceHelper; public IdentityRoleAppService( IdentityRoleManager roleManager, - IIdentityRoleRepository roleRepository, - IPermissionAppServiceHelper permissionAppServiceHelper) + IIdentityRoleRepository roleRepository) { _roleManager = roleManager; _roleRepository = roleRepository; - _permissionAppServiceHelper = permissionAppServiceHelper; } public async Task GetAsync(Guid id) @@ -52,20 +49,6 @@ namespace Volo.Abp.Identity return ObjectMapper.Map, List>(list); } - [Authorize(IdentityPermissions.Roles.ManagePermissions)] - public async Task GetPermissionsAsync(Guid id) - { - var role = await _roleRepository.GetAsync(id); - return await _permissionAppServiceHelper.GetAsync(RolePermissionValueProvider.ProviderName, role.Name); //TODO: User normalized role name instad of name? - } - - [Authorize(IdentityPermissions.Roles.ManagePermissions)] - public async Task UpdatePermissionsAsync(Guid id, UpdatePermissionsDto input) - { - var role = await _roleRepository.GetAsync(id); - await _permissionAppServiceHelper.UpdateAsync(RolePermissionValueProvider.ProviderName, role.Name, input); - } - [Authorize(IdentityPermissions.Roles.Create)] public async Task CreateAsync(IdentityRoleCreateDto input) { diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs index 8c9a8ef015..e1fb6ba8e5 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs @@ -1,12 +1,9 @@ using System; using System.Collections.Generic; -using System.Security.Authentication; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Volo.Abp.Application.Dtos; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.PermissionManagement; namespace Volo.Abp.Identity { @@ -14,18 +11,16 @@ namespace Volo.Abp.Identity { private readonly IdentityUserManager _userManager; private readonly IIdentityUserRepository _userRepository; - private readonly IPermissionAppServiceHelper _permissionAppServiceHelper; public IdentityUserAppService( IdentityUserManager userManager, - IIdentityUserRepository userRepository, - IPermissionAppServiceHelper permissionAppServiceHelper) + IIdentityUserRepository userRepository) { _userManager = userManager; _userRepository = userRepository; - _permissionAppServiceHelper = permissionAppServiceHelper; } + //TODO: [Authorize(IdentityPermissions.Users.Default)] should go the IdentityUserAppService class. [Authorize(IdentityPermissions.Users.Default)] public async Task GetAsync(Guid id) { @@ -37,7 +32,7 @@ namespace Volo.Abp.Identity [Authorize(IdentityPermissions.Users.Default)] public async Task> GetListAsync(GetIdentityUsersInput input) { - var count = await _userRepository.GetCountAsync(input.Filter); //TODO: + var count = await _userRepository.GetCountAsync(input.Filter); var list = await _userRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter); return new PagedResultDto( @@ -102,21 +97,6 @@ namespace Volo.Abp.Identity await _userRepository.UpdateAsync(user); } - [Authorize(IdentityPermissions.Users.ManagePermissions)] - public async Task GetPermissionsAsync(Guid id) - { - var user = await _userManager.GetByIdAsync(id); - var result = await _permissionAppServiceHelper.GetAsync(UserPermissionValueProvider.ProviderName, id.ToString()); - result.EntityDisplayName = user.UserName; - return result; - } - - [Authorize(IdentityPermissions.Users.ManagePermissions)] - public async Task UpdatePermissionsAsync(Guid id, UpdatePermissionsDto input) - { - await _permissionAppServiceHelper.UpdateAsync(UserPermissionValueProvider.ProviderName, id.ToString(), input); - } - [Authorize(IdentityPermissions.Users.Default)] public async Task FindByUsernameAsync(string username) { @@ -133,6 +113,7 @@ namespace Volo.Abp.Identity ); } + //TODO: Move this to the profile service! public async Task ChangePasswordAsync(string currentPassword, string newPassword) { if (!CurrentUser.Id.HasValue) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IUserRoleFinder.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IUserRoleFinder.cs new file mode 100644 index 0000000000..c30528ee33 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IUserRoleFinder.cs @@ -0,0 +1,10 @@ +using System; +using System.Threading.Tasks; + +namespace Volo.Abp.Identity +{ + public interface IUserRoleFinder + { + Task GetRolesAsync(Guid userId); + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj index bdf9c1edd0..2d7948e20d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj @@ -21,7 +21,6 @@ - @@ -30,4 +29,8 @@ + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index 6465fe692f..ac989f8f4c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -7,14 +7,12 @@ using Volo.Abp.EventBus.Distributed; using Volo.Abp.Identity.Localization; using Volo.Abp.Localization; using Volo.Abp.Modularity; -using Volo.Abp.PermissionManagement; using Volo.Abp.Settings; using Volo.Abp.Users; using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.Identity { - [DependsOn(typeof(AbpPermissionManagementDomainModule))] [DependsOn(typeof(AbpDddDomainModule))] [DependsOn(typeof(AbpIdentityDomainSharedModule))] [DependsOn(typeof(AbpUsersDomainModule))] @@ -22,12 +20,6 @@ namespace Volo.Abp.Identity { public override void ConfigureServices(ServiceConfigurationContext context) { - Configure(options => - { - options.ManagementProviders.Add(); - options.ManagementProviders.Add(); - }); - Configure(options => { options.DefinitionProviders.Add(); diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityDataSeeder.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityDataSeeder.cs index 6c5d9d293c..b5c2817341 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityDataSeeder.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityDataSeeder.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Threading.Tasks; namespace Volo.Abp.Identity @@ -8,7 +7,6 @@ namespace Volo.Abp.Identity { Task SeedAsync( string adminUserPassword, - IEnumerable adminRolePermissions = null, Guid? tenantId = null); } } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs index 1aa90b8b5f..a0ba942ab6 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs @@ -3,10 +3,8 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; -using Volo.Abp.Authorization.Permissions; using Volo.Abp.DependencyInjection; using Volo.Abp.Guids; -using Volo.Abp.PermissionManagement; using Volo.Abp.Uow; namespace Volo.Abp.Identity @@ -14,7 +12,6 @@ namespace Volo.Abp.Identity public class IdentityDataSeeder : ITransientDependency, IIdentityDataSeeder { private readonly IGuidGenerator _guidGenerator; - private readonly IPermissionGrantRepository _permissionGrantRepository; private readonly IIdentityRoleRepository _roleRepository; private readonly IIdentityUserRepository _userRepository; private readonly ILookupNormalizer _lookupNormalizer; @@ -23,7 +20,6 @@ namespace Volo.Abp.Identity public IdentityDataSeeder( IGuidGenerator guidGenerator, - IPermissionGrantRepository permissionGrantRepository, IIdentityRoleRepository roleRepository, IIdentityUserRepository userRepository, ILookupNormalizer lookupNormalizer, @@ -31,7 +27,6 @@ namespace Volo.Abp.Identity IdentityRoleManager roleManager) { _guidGenerator = guidGenerator; - _permissionGrantRepository = permissionGrantRepository; _roleRepository = roleRepository; _userRepository = userRepository; _lookupNormalizer = lookupNormalizer; @@ -42,7 +37,6 @@ namespace Volo.Abp.Identity [UnitOfWork] public virtual async Task SeedAsync( string adminUserPassword, - IEnumerable adminRolePermissions = null, Guid? tenantId = null) { const string adminUserName = "admin"; @@ -68,36 +62,12 @@ namespace Volo.Abp.Identity adminRole.IsPublic = true; CheckIdentityErrors(await _roleManager.CreateAsync(adminRole)); - - if (adminRolePermissions != null) - { - await AddRolePermissionsAsync(adminRole, adminRolePermissions); - } } CheckIdentityErrors(await _userManager.AddToRoleAsync(adminUser, adminRoleName)); } - protected virtual async Task AddRolePermissionsAsync(IdentityRole role, IEnumerable permissionNames) - { - foreach (var permissionName in permissionNames) - { - await AddPermissionAsync(permissionName, RolePermissionValueProvider.ProviderName, role.Name, role.TenantId); - } - } - protected virtual Task AddPermissionAsync(string permissionName, string providerName, string providerKey, Guid? tenantId) - { - return _permissionGrantRepository.InsertAsync( - new PermissionGrant( - _guidGenerator.Create(), - permissionName, - providerName, - providerKey, - tenantId - ) - ); - } protected void CheckIdentityErrors(IdentityResult identityResult) //TODO: This is temporary and duplicate code! { diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserRoleFinder.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserRoleFinder.cs new file mode 100644 index 0000000000..b168282526 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserRoleFinder.cs @@ -0,0 +1,21 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Identity +{ + public class UserRoleFinder : IUserRoleFinder, ITransientDependency + { + private readonly IIdentityUserRepository _identityUserRepository; + + public UserRoleFinder(IIdentityUserRepository identityUserRepository) + { + _identityUserRepository = identityUserRepository; + } + + public async Task GetRolesAsync(Guid userId) + { + return (await _identityUserRepository.GetRoleNamesAsync(userId)).ToArray(); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/AbpIdentityHttpApiClientModule.cs b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/AbpIdentityHttpApiClientModule.cs index 2ea34cf671..4ee0b06ff1 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/AbpIdentityHttpApiClientModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/AbpIdentityHttpApiClientModule.cs @@ -15,7 +15,10 @@ namespace Volo.Abp.Identity public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.AddHttpClientProxies(typeof(AbpIdentityApplicationContractsModule).Assembly, RemoteServiceName); + context.Services.AddHttpClientProxies( + typeof(AbpIdentityApplicationContractsModule).Assembly, + RemoteServiceName + ); } } } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientUserRoleFinder.cs b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientUserRoleFinder.cs new file mode 100644 index 0000000000..a5fffe9848 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientUserRoleFinder.cs @@ -0,0 +1,24 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Identity +{ + [Dependency(TryRegister = true)] + public class HttpClientUserRoleFinder : IUserRoleFinder, ITransientDependency + { + private readonly IIdentityUserAppService _userAppService; + + public HttpClientUserRoleFinder(IIdentityUserAppService userAppService) + { + _userAppService = userAppService; + } + + public async Task GetRolesAsync(Guid userId) + { + var output = await _userAppService.GetRolesAsync(userId); + return output.Items.Select(r => r.Name).ToArray(); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityRoleController.cs b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityRoleController.cs index 8164269d6c..7e0085189f 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityRoleController.cs +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityRoleController.cs @@ -4,7 +4,6 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.PermissionManagement; namespace Volo.Abp.Identity { @@ -49,15 +48,5 @@ namespace Volo.Abp.Identity { return _roleAppService.GetAllListAsync(); } - - public virtual Task GetPermissionsAsync(Guid id) - { - return _roleAppService.GetPermissionsAsync(id); - } - - public virtual Task UpdatePermissionsAsync(Guid id, UpdatePermissionsDto input) - { - return _roleAppService.UpdatePermissionsAsync(id, input); - } } } diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs index 2d6ad778ae..2728e16fbd 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs @@ -3,7 +3,6 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.PermissionManagement; namespace Volo.Abp.Identity { @@ -54,16 +53,6 @@ namespace Volo.Abp.Identity return _userAppService.UpdateRolesAsync(id, input); } - public virtual Task GetPermissionsAsync(Guid id) - { - return _userAppService.GetPermissionsAsync(id); - } - - public virtual Task UpdatePermissionsAsync(Guid id, UpdatePermissionsDto input) - { - return _userAppService.UpdatePermissionsAsync(id, input); - } - [HttpGet] public virtual Task FindByUsernameAsync(string username) { diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js index ee013ff1e9..69351e8d96 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js @@ -39,7 +39,7 @@ action: function (data) { _permissionsModal.open({ providerName: 'Role', - providerKey: data.record.id + providerKey: data.record.name }); } }, diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Permissions/IdentityPermissionAppServiceGateway.cs b/modules/identity/src/Volo.Abp.Identity.Web/Permissions/IdentityPermissionAppServiceGateway.cs deleted file mode 100644 index 00762f8c11..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Web/Permissions/IdentityPermissionAppServiceGateway.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Threading.Tasks; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.DependencyInjection; -using Volo.Abp.PermissionManagement; -using Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement; - -namespace Volo.Abp.Identity.Web.Permissions -{ - //TODO: Instead of creating such a gateway/adapter, we can implement a common interface for app services, like IHasPermissionManagementApi and manage it dynamically! - - public class IdentityPermissionAppServiceGateway : IPermissionAppServiceGateway, ITransientDependency - { - private readonly IIdentityUserAppService _userAppService; - private readonly IIdentityRoleAppService _roleAppService; - - public IdentityPermissionAppServiceGateway(IIdentityUserAppService userAppService, IIdentityRoleAppService roleAppService) - { - _userAppService = userAppService; - _roleAppService = roleAppService; - } - - public virtual async Task GetAsync(string providerName, string providerKey) - { - switch (providerName) - { - case UserPermissionValueProvider.ProviderName: - return await _userAppService.GetPermissionsAsync(Guid.Parse(providerKey)); - case RolePermissionValueProvider.ProviderName: - return await _roleAppService.GetPermissionsAsync(Guid.Parse(providerKey)); - default: - throw new NotImplementedException(); - } - } - - public virtual async Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) - { - switch (providerName) - { - case UserPermissionValueProvider.ProviderName: - await _userAppService.UpdatePermissionsAsync(Guid.Parse(providerKey), input); - break; - case RolePermissionValueProvider.ProviderName: - await _roleAppService.UpdatePermissionsAsync(Guid.Parse(providerKey), input); - break; - default: - throw new NotImplementedException(); - } - } - } -} diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.csproj b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.csproj new file mode 100644 index 0000000000..ea663ba49b --- /dev/null +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.csproj @@ -0,0 +1,21 @@ + + + + + + netstandard2.0 + Volo.Abp.PermissionManagement.Domain.Identity + Volo.Abp.PermissionManagement.Domain.Identity + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + + diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/AbpPermissionManagementDomainIdentityModule.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/AbpPermissionManagementDomainIdentityModule.cs new file mode 100644 index 0000000000..db6cc1ec63 --- /dev/null +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/AbpPermissionManagementDomainIdentityModule.cs @@ -0,0 +1,16 @@ +using Volo.Abp.Modularity; + +namespace Volo.Abp.PermissionManagement.Identity +{ + public class AbpPermissionManagementDomainIdentityModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.ManagementProviders.Add(); + options.ManagementProviders.Add(); + }); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/RolePermissionManagementProvider.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs similarity index 80% rename from modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/RolePermissionManagementProvider.cs rename to modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs index 1cb505e3c7..483bc656a1 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/RolePermissionManagementProvider.cs +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs @@ -2,28 +2,28 @@ using System.Threading.Tasks; using Volo.Abp.Authorization.Permissions; using Volo.Abp.Guids; +using Volo.Abp.Identity; using Volo.Abp.MultiTenancy; -using Volo.Abp.PermissionManagement; -namespace Volo.Abp.Identity +namespace Volo.Abp.PermissionManagement.Identity { public class RolePermissionManagementProvider : PermissionManagementProvider { public override string Name => RolePermissionValueProvider.ProviderName; - private readonly IIdentityUserRepository _identityUserRepository; + private readonly IUserRoleFinder _userRoleFinder; public RolePermissionManagementProvider( IPermissionGrantRepository permissionGrantRepository, IGuidGenerator guidGenerator, - IIdentityUserRepository identityUserRepository, - ICurrentTenant currentTenant) + ICurrentTenant currentTenant, + IUserRoleFinder userRoleFinder) : base( permissionGrantRepository, guidGenerator, currentTenant) { - _identityUserRepository = identityUserRepository; + _userRoleFinder = userRoleFinder; } public override async Task CheckAsync(string name, string providerName, string providerKey) @@ -39,7 +39,7 @@ namespace Volo.Abp.Identity if (providerName == "User") { var userId = Guid.Parse(providerKey); - var roleNames = await _identityUserRepository.GetRoleNamesAsync(userId); + var roleNames = await _userRoleFinder.GetRolesAsync(userId); foreach (var roleName in roleNames) { diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserPermissionManagementProvider.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserPermissionManagementProvider.cs similarity index 90% rename from modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserPermissionManagementProvider.cs rename to modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserPermissionManagementProvider.cs index d65c6ca760..43e9644f37 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserPermissionManagementProvider.cs +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserPermissionManagementProvider.cs @@ -1,9 +1,8 @@ using Volo.Abp.Authorization.Permissions; using Volo.Abp.Guids; using Volo.Abp.MultiTenancy; -using Volo.Abp.PermissionManagement; -namespace Volo.Abp.Identity +namespace Volo.Abp.PermissionManagement.Identity { public class UserPermissionManagementProvider : PermissionManagementProvider { diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Permissions/RolePermissionManagerExtensions.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/RolePermissionManagerExtensions.cs similarity index 95% rename from modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Permissions/RolePermissionManagerExtensions.cs rename to modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/RolePermissionManagerExtensions.cs index e73c9343ec..1ad565350c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Permissions/RolePermissionManagerExtensions.cs +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/RolePermissionManagerExtensions.cs @@ -2,9 +2,8 @@ using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Authorization.Permissions; -using Volo.Abp.PermissionManagement; -namespace Volo.Abp.Permissions +namespace Volo.Abp.PermissionManagement { public static class RolePermissionManagerExtensions { diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Permissions/UserPermissionManagerExtensions.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/UserPermissionManagerExtensions.cs similarity index 93% rename from modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Permissions/UserPermissionManagerExtensions.cs rename to modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/UserPermissionManagerExtensions.cs index 510332010e..1456081a4a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Permissions/UserPermissionManagerExtensions.cs +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/UserPermissionManagerExtensions.cs @@ -3,9 +3,8 @@ using System.Collections.Generic; using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Authorization.Permissions; -using Volo.Abp.PermissionManagement; -namespace Volo.Abp.Permissions +namespace Volo.Abp.PermissionManagement { public static class UserPermissionManagerExtensions { diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj index d52233b95d..44e44e825f 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj @@ -12,6 +12,7 @@ + diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs index fc8cb447be..16dd6149de 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs @@ -2,10 +2,15 @@ using Volo.Abp.Authorization.Permissions; using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.Identity; namespace Volo.Abp.Identity { - [DependsOn(typeof(AbpIdentityEntityFrameworkCoreTestModule))] + [DependsOn( + typeof(AbpIdentityEntityFrameworkCoreTestModule), + typeof(AbpIdentityTestBaseModule), + typeof(AbpPermissionManagementDomainIdentityModule) + )] public class AbpIdentityDomainTestModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/PermissionManager_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/PermissionManager_Tests.cs index 374351fd3c..621cb4621f 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/PermissionManager_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/PermissionManager_Tests.cs @@ -5,7 +5,6 @@ using System.Threading.Tasks; using Shouldly; using Volo.Abp.Authorization.Permissions; using Volo.Abp.PermissionManagement; -using Volo.Abp.Permissions; using Xunit; namespace Volo.Abp.Identity diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj index e87514036b..4093dd9061 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj @@ -13,6 +13,7 @@ + diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestBaseModule.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestBaseModule.cs index 4f33976649..f99f70da72 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestBaseModule.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestBaseModule.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Authorization; using Volo.Abp.Autofac; using Volo.Abp.Modularity; using Volo.Abp.Threading; @@ -8,7 +9,8 @@ namespace Volo.Abp.Identity [DependsOn( typeof(AbpAutofacModule), typeof(AbpTestBaseModule), - typeof(AbpIdentityDomainModule) + typeof(AbpIdentityDomainModule), + typeof(AbpAuthorizationModule) )] public class AbpIdentityTestBaseModule : AbpModule { diff --git a/modules/permission-management/Volo.Abp.PermissionManagement.sln b/modules/permission-management/Volo.Abp.PermissionManagement.sln index fb3873eb6c..e0fdd1e0ec 100644 --- a/modules/permission-management/Volo.Abp.PermissionManagement.sln +++ b/modules/permission-management/Volo.Abp.PermissionManagement.sln @@ -21,13 +21,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.PermissionManageme EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.PermissionManagement.Tests", "test\Volo.Abp.PermissionManagement.Tests\Volo.Abp.PermissionManagement.Tests.csproj", "{48297098-79D0-413B-939C-6C432142C42D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.TestBase", "test\Volo.Abp.PermissionManagement.TestBase\Volo.Abp.PermissionManagement.TestBase.csproj", "{49259427-CAEB-4FAE-81E4-848F789487EA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.PermissionManagement.TestBase", "test\Volo.Abp.PermissionManagement.TestBase\Volo.Abp.PermissionManagement.TestBase.csproj", "{49259427-CAEB-4FAE-81E4-848F789487EA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests", "test\Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests\Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj", "{6E710DE0-F3B1-45D7-85BA-F39D839D9B65}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests", "test\Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests\Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj", "{6E710DE0-F3B1-45D7-85BA-F39D839D9B65}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.MongoDB", "src\Volo.Abp.PermissionManagement.MongoDB\Volo.Abp.PermissionManagement.MongoDB.csproj", "{903C1729-CEBC-4BCD-A102-8D1B1B5465AF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.PermissionManagement.MongoDB", "src\Volo.Abp.PermissionManagement.MongoDB\Volo.Abp.PermissionManagement.MongoDB.csproj", "{903C1729-CEBC-4BCD-A102-8D1B1B5465AF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.MongoDB.Tests", "test\Volo.Abp.PermissionManagement.MongoDB.Tests\Volo.Abp.PermissionManagement.MongoDB.Tests.csproj", "{AFA65E08-1F17-4BBE-96A6-80F3CFE22A75}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.PermissionManagement.MongoDB.Tests", "test\Volo.Abp.PermissionManagement.MongoDB.Tests\Volo.Abp.PermissionManagement.MongoDB.Tests.csproj", "{AFA65E08-1F17-4BBE-96A6-80F3CFE22A75}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.HttpApi", "src\Volo.Abp.PermissionManagement.HttpApi\Volo.Abp.PermissionManagement.HttpApi.csproj", "{9E0B517E-F02E-436F-9695-7CF12795D34C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.HttpApi.Client", "src\Volo.Abp.PermissionManagement.HttpApi.Client\Volo.Abp.PermissionManagement.HttpApi.Client.csproj", "{1CD80519-9431-48DB-B0EA-291A73FF9F49}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -79,6 +83,14 @@ Global {AFA65E08-1F17-4BBE-96A6-80F3CFE22A75}.Debug|Any CPU.Build.0 = Debug|Any CPU {AFA65E08-1F17-4BBE-96A6-80F3CFE22A75}.Release|Any CPU.ActiveCfg = Release|Any CPU {AFA65E08-1F17-4BBE-96A6-80F3CFE22A75}.Release|Any CPU.Build.0 = Release|Any CPU + {9E0B517E-F02E-436F-9695-7CF12795D34C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E0B517E-F02E-436F-9695-7CF12795D34C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E0B517E-F02E-436F-9695-7CF12795D34C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E0B517E-F02E-436F-9695-7CF12795D34C}.Release|Any CPU.Build.0 = Release|Any CPU + {1CD80519-9431-48DB-B0EA-291A73FF9F49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CD80519-9431-48DB-B0EA-291A73FF9F49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CD80519-9431-48DB-B0EA-291A73FF9F49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CD80519-9431-48DB-B0EA-291A73FF9F49}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -95,6 +107,8 @@ Global {6E710DE0-F3B1-45D7-85BA-F39D839D9B65} = {63DA4A89-5908-4F37-B7E6-525AEEF20C77} {903C1729-CEBC-4BCD-A102-8D1B1B5465AF} = {B559B878-38F7-49CC-BC06-43A32D68C1A7} {AFA65E08-1F17-4BBE-96A6-80F3CFE22A75} = {63DA4A89-5908-4F37-B7E6-525AEEF20C77} + {9E0B517E-F02E-436F-9695-7CF12795D34C} = {B559B878-38F7-49CC-BC06-43A32D68C1A7} + {1CD80519-9431-48DB-B0EA-291A73FF9F49} = {B559B878-38F7-49CC-BC06-43A32D68C1A7} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8FC7DF78-5E2D-489F-9D43-147D2ABAA112} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/IPermissionAppServiceHelper.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs similarity index 77% rename from modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/IPermissionAppServiceHelper.cs rename to modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs index 03751b801a..397017fa64 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/IPermissionAppServiceHelper.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs @@ -1,12 +1,13 @@ using System.Threading.Tasks; using JetBrains.Annotations; +using Volo.Abp.Application.Services; namespace Volo.Abp.PermissionManagement { - public interface IPermissionAppServiceHelper + public interface IPermissionAppService : IApplicationService { Task GetAsync([NotNull] string providerName, [NotNull] string providerKey); Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdatePermissionsDto input); } -} +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/AbpPermissionManagementApplicationModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/AbpPermissionManagementApplicationModule.cs index 4b2ae3b22f..8a94fb1e2d 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/AbpPermissionManagementApplicationModule.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/AbpPermissionManagementApplicationModule.cs @@ -2,8 +2,10 @@ namespace Volo.Abp.PermissionManagement { - [DependsOn(typeof(AbpPermissionManagementDomainModule))] - [DependsOn(typeof(AbpPermissionManagementApplicationContractsModule))] + [DependsOn( + typeof(AbpPermissionManagementDomainModule), + typeof(AbpPermissionManagementApplicationContractsModule) + )] public class AbpPermissionManagementApplicationModule : AbpModule { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppServiceHelper.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs similarity index 93% rename from modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppServiceHelper.cs rename to modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs index 9a2dfc3b24..4131d5b3ec 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppServiceHelper.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs @@ -1,18 +1,20 @@ using System.Collections.Generic; using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Localization; +using Volo.Abp.Application.Services; using Volo.Abp.Authorization.Permissions; -using Volo.Abp.DependencyInjection; namespace Volo.Abp.PermissionManagement { - public class PermissionAppServiceHelper : IPermissionAppServiceHelper, ITransientDependency + //[Authorize] + public class PermissionAppService : ApplicationService, IPermissionAppService { private readonly IPermissionManager _permissionManager; private readonly IPermissionDefinitionManager _permissionDefinitionManager; private readonly IStringLocalizerFactory _stringLocalizerFactory; - public PermissionAppServiceHelper( + public PermissionAppService( IPermissionManager permissionManager, IPermissionDefinitionManager permissionDefinitionManager, IStringLocalizerFactory stringLocalizerFactory) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManagementProvider.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManagementProvider.cs index a749ce5abe..b765b1360a 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManagementProvider.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManagementProvider.cs @@ -9,8 +9,16 @@ namespace Volo.Abp.PermissionManagement { string Name { get; } - Task CheckAsync([NotNull] string name, [NotNull] string providerName, [NotNull] string providerKey); + Task CheckAsync( + [NotNull] string name, + [NotNull] string providerName, + [NotNull] string providerKey + ); - Task SetAsync([NotNull] string name, [NotNull] string providerKey, bool isGranted); + Task SetAsync( + [NotNull] string name, + [NotNull] string providerKey, + bool isGranted + ); } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj new file mode 100644 index 0000000000..4a719f72c3 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj @@ -0,0 +1,21 @@ + + + + + + netstandard2.0 + Volo.Abp.PermissionManagement.HttpApi.Client + Volo.Abp.PermissionManagement.HttpApi.Client + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo/Abp/PermissionManagement/AbpPermissionManagementHttpApiClientModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo/Abp/PermissionManagement/AbpPermissionManagementHttpApiClientModule.cs new file mode 100644 index 0000000000..6bdc958780 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo/Abp/PermissionManagement/AbpPermissionManagementHttpApiClientModule.cs @@ -0,0 +1,22 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Http.Client; +using Volo.Abp.Modularity; + +namespace Volo.Abp.PermissionManagement +{ + [DependsOn( + typeof(AbpPermissionManagementApplicationContractsModule), + typeof(AbpHttpClientModule))] + public class AbpPermissionManagementHttpApiClientModule : AbpModule + { + public const string RemoteServiceName = "AbpPermissionManagement"; + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(AbpPermissionManagementApplicationContractsModule).Assembly, + RemoteServiceName + ); + } + } +} 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 new file mode 100644 index 0000000000..d650ca2e06 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj @@ -0,0 +1,21 @@ + + + + + + netstandard2.0 + Volo.Abp.PermissionManagement.HttpApi + Volo.Abp.PermissionManagement.HttpApi + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/AbpPermissionManagementHttpApiModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/AbpPermissionManagementHttpApiModule.cs new file mode 100644 index 0000000000..9b30d360bd --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/AbpPermissionManagementHttpApiModule.cs @@ -0,0 +1,14 @@ +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Modularity; + +namespace Volo.Abp.PermissionManagement.HttpApi +{ + [DependsOn( + typeof(AbpPermissionManagementApplicationContractsModule), + typeof(AbpAspNetCoreMvcModule) + )] + public class AbpPermissionManagementHttpApiModule : AbpModule + { + + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs new file mode 100644 index 0000000000..19dcade208 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs @@ -0,0 +1,28 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; + +namespace Volo.Abp.PermissionManagement +{ + [RemoteService] + [Area("abp")] + public class PermissionsController : AbpController, IPermissionAppService + { + private readonly IPermissionAppService _permissionAppService; + + public PermissionsController(IPermissionAppService permissionAppService) + { + _permissionAppService = permissionAppService; + } + + public Task GetAsync(string providerName, string providerKey) + { + return _permissionAppService.GetAsync(providerName, providerKey); + } + + public Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) + { + return _permissionAppService.UpdateAsync(providerName, providerKey, input); + } + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/AbpPermissionManagementWebModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/AbpPermissionManagementWebModule.cs index c417da1775..37c331b40d 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/AbpPermissionManagementWebModule.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/AbpPermissionManagementWebModule.cs @@ -4,12 +4,13 @@ using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.AutoMapper; using Volo.Abp.Localization; using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.Web.Localization.Resources.AbpPermissionManagement; using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.PermissionManagement.Web { - [DependsOn(typeof(AbpPermissionManagementApplicationContractsModule))] + [DependsOn(typeof(AbpPermissionManagementHttpApiModule))] [DependsOn(typeof(AbpAspNetCoreMvcUiBootstrapModule))] [DependsOn(typeof(AbpAutoMapperModule))] public class AbpPermissionManagementWebModule : AbpModule diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/IPermissionAppServiceHelper.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/IPermissionAppServiceHelper.cs deleted file mode 100644 index 1dec0a5ca2..0000000000 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/IPermissionAppServiceHelper.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Threading.Tasks; -using JetBrains.Annotations; - -namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement -{ - public interface IPermissionAppServiceGateway - { - Task GetAsync([NotNull] string providerName, [NotNull] string providerKey); - - Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdatePermissionsDto input); - } -} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/NotImplementedPermissionAppServiceGateway.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/NotImplementedPermissionAppServiceGateway.cs deleted file mode 100644 index bee3c00d8b..0000000000 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/NotImplementedPermissionAppServiceGateway.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; - -namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement -{ - public class NotImplementedPermissionAppServiceGateway : IPermissionAppServiceGateway, ISingletonDependency - { - public Task GetAsync(string providerName, string providerKey) - { - throw new System.NotImplementedException(); - } - - public Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) - { - throw new System.NotImplementedException(); - } - } -} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs index b1b3148aa3..55217b797a 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs @@ -10,8 +10,6 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement { public class PermissionManagementModal : AbpPageModel { - private readonly IPermissionAppServiceGateway _permissionAppServiceGateway; - [Required] [HiddenInput] [BindProperty(SupportsGet = true)] @@ -27,16 +25,18 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement public string EntityDisplayName { get; set; } - public PermissionManagementModal(IPermissionAppServiceGateway permissionAppServiceGateway) + private readonly IPermissionAppService _permissionAppService; + + public PermissionManagementModal(IPermissionAppService permissionAppService) { - _permissionAppServiceGateway = permissionAppServiceGateway; + _permissionAppService = permissionAppService; } public async Task OnGetAsync() { ValidateModel(); - var result = await _permissionAppServiceGateway.GetAsync(ProviderName, ProviderKey); + var result = await _permissionAppService.GetAsync(ProviderName, ProviderKey); EntityDisplayName = result.EntityDisplayName; @@ -64,7 +64,7 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement }) .ToArray(); - await _permissionAppServiceGateway.UpdateAsync( + await _permissionAppService.UpdateAsync( ProviderName, ProviderKey, new UpdatePermissionsDto diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj index 643ced298d..2fdf1de2ca 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj @@ -23,7 +23,7 @@ - + diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index ba76a121ff..cf99efce07 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -109,6 +109,8 @@ $projects = ( "modules/permission-management/src/Volo.Abp.PermissionManagement.Application", "modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore", "modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB", + "modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi", + "modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client", "modules/permission-management/src/Volo.Abp.PermissionManagement.Web", # modules/tenant-management diff --git a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs index 353e00bd4a..d488428449 100644 --- a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs +++ b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs @@ -76,8 +76,7 @@ namespace AuthServer.Host await context.ServiceProvider .GetRequiredService() .SeedAsync( - "1q2w3E*", - IdentityPermissions.GetAll() + "1q2w3E*" ); }); } diff --git a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj index b82569afab..2d134e6c4e 100644 --- a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj +++ b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj @@ -26,6 +26,7 @@ + diff --git a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminAppHostModule.cs b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminAppHostModule.cs index 00ab537d90..ceb8200027 100644 --- a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminAppHostModule.cs +++ b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminAppHostModule.cs @@ -14,6 +14,7 @@ using Volo.Abp.Identity; using Volo.Abp.Identity.Web; using Volo.Abp.Localization; using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; namespace BackendAdminApp.Host { @@ -24,6 +25,7 @@ namespace BackendAdminApp.Host typeof(AbpHttpClientIdentityModelModule), typeof(AbpIdentityHttpApiClientModule), typeof(AbpIdentityWebModule), + typeof(AbpPermissionManagementHttpApiClientModule), typeof(ProductManagementHttpApiClientModule), typeof(ProductManagementWebModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule) diff --git a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj index 936615b423..6420075b56 100644 --- a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj +++ b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj @@ -25,6 +25,10 @@ + + + + diff --git a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGatewayHostModule.cs b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGatewayHostModule.cs index b89ae24a9f..9630ed9ca2 100644 --- a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGatewayHostModule.cs +++ b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGatewayHostModule.cs @@ -10,7 +10,10 @@ using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.SqlServer; using Volo.Abp.Identity; using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.PermissionManagement.HttpApi; +using Volo.Abp.PermissionManagement.Identity; using Volo.Abp.Security.Claims; using Volo.Abp.SettingManagement.EntityFrameworkCore; @@ -19,10 +22,14 @@ namespace BackendAdminAppGateway.Host [DependsOn( typeof(AbpAutofacModule), typeof(AbpIdentityHttpApiModule), + typeof(AbpIdentityHttpApiClientModule), typeof(ProductManagementHttpApiModule), typeof(AbpEntityFrameworkCoreSqlServerModule), typeof(AbpPermissionManagementEntityFrameworkCoreModule), - typeof(AbpSettingManagementEntityFrameworkCoreModule) + typeof(AbpPermissionManagementApplicationModule), + typeof(AbpPermissionManagementHttpApiModule), + typeof(AbpSettingManagementEntityFrameworkCoreModule), + typeof(AbpPermissionManagementDomainIdentityModule) )] public class BackendAdminAppGatewayHostModule : AbpModule { diff --git a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/appsettings.json b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/appsettings.json index b6f59c374f..05ea2b0eda 100644 --- a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/appsettings.json +++ b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/appsettings.json @@ -1,4 +1,9 @@ { + "RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:65115/" + } + }, "AuthServer": { "Authority": "http://localhost:64999", "ApiName": "BackendAdminAppGateway"