Browse Source

Add pagination support to resource permission search methods

pull/24374/head
maliming 6 months ago
parent
commit
46281964d9
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 5
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IUserRoleFinder.cs
  2. 20
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserRoleFinder.cs
  3. 12
      modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientUserRoleFinder.cs
  4. 4
      modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleResourcePermissionProviderKeyLookupService.cs
  5. 4
      modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserResourcePermissionProviderKeyLookupService.cs
  6. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs
  7. 4
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs
  8. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IResourcePermissionProviderKeyLookupService.cs
  9. 5
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs
  10. 32
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json
  11. 4
      modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs
  12. 6
      modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/add-resource-permission-management-modal.js
  13. 4
      modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js
  14. 2
      modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestResourcePermissionProviderKeyLookupService.cs

5
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IUserRoleFinder.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace Volo.Abp.Identity;
@ -11,9 +12,9 @@ public interface IUserRoleFinder
Task<string[]> GetRoleNamesAsync(Guid userId);
Task<List<UserFinderResult>> SearchUserAsync(string filter);
Task<List<UserFinderResult>> SearchUserAsync(string filter, int page = 1);
Task<List<RoleFinderResult>> SearchRoleAsync(string filter);
Task<List<RoleFinderResult>> SearchRoleAsync(string filter, int page = 1);
Task<List<UserFinderResult>> SearchUserByIdsAsync(Guid[] ids);

20
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/UserRoleFinder.cs

@ -29,16 +29,12 @@ public class UserRoleFinder : IUserRoleFinder, ITransientDependency
return (await IdentityUserRepository.GetRoleNamesAsync(userId)).ToArray();
}
public virtual async Task<List<UserFinderResult>> SearchUserAsync(string filter)
public virtual async Task<List<UserFinderResult>> SearchUserAsync(string filter, int page = 1)
{
if (filter.IsNullOrEmpty())
{
return new List<UserFinderResult>();
}
using (IdentityUserRepository.DisableTracking())
{
var users = await IdentityUserRepository.GetListAsync(filter: filter);
page = page < 1 ? 1 : page;
var users = await IdentityUserRepository.GetListAsync(filter: filter, skipCount: (page - 1) * 10, maxResultCount: 10);
return users.Select(user => new UserFinderResult
{
Id = user.Id,
@ -47,16 +43,12 @@ public class UserRoleFinder : IUserRoleFinder, ITransientDependency
}
}
public virtual async Task<List<RoleFinderResult>> SearchRoleAsync(string filter)
public virtual async Task<List<RoleFinderResult>> SearchRoleAsync(string filter, int page = 1)
{
if (filter.IsNullOrEmpty())
{
return new List<RoleFinderResult>();
}
using (IdentityUserRepository.DisableTracking())
{
var roles = await IdentityRoleRepository.GetListAsync(filter: filter);
page = page < 1 ? 1 : page;
var roles = await IdentityRoleRepository.GetListAsync(filter: filter, skipCount: (page - 1) * 10, maxResultCount: 10);
return roles.Select(user => new RoleFinderResult
{
Id = user.Id,

12
modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientUserRoleFinder.cs

@ -31,11 +31,13 @@ public class HttpClientUserRoleFinder : IUserRoleFinder, ITransientDependency
return await _userIntegrationService.GetRoleNamesAsync(userId);
}
public virtual async Task<List<UserFinderResult>> SearchUserAsync(string filter)
public virtual async Task<List<UserFinderResult>> SearchUserAsync(string filter, int page = 1)
{
page = page < 1 ? 1 : page;
var users = await _userIntegrationService.SearchAsync(new UserLookupSearchInputDto()
{
Filter = filter
Filter = filter,
SkipCount = (page - 1) * 10
});
return users.Items.Select(u => new UserFinderResult
{
@ -44,11 +46,13 @@ public class HttpClientUserRoleFinder : IUserRoleFinder, ITransientDependency
}).ToList();
}
public virtual async Task<List<RoleFinderResult>> SearchRoleAsync(string filter)
public virtual async Task<List<RoleFinderResult>> SearchRoleAsync(string filter, int page = 1)
{
page = page < 1 ? 1 : page;
var roles = await _userIntegrationService.SearchRoleAsync(new RoleLookupSearchInputDto()
{
Filter = filter
Filter = filter,
SkipCount = (page - 1) * 10
});
return roles.Items.Select(r => new RoleFinderResult

4
modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleResourcePermissionProviderKeyLookupService.cs

@ -25,9 +25,9 @@ public class RoleResourcePermissionProviderKeyLookupService : IResourcePermissio
DisplayName = LocalizableString.Create<IdentityResource>(nameof(RoleResourcePermissionProviderKeyLookupService));
}
public virtual async Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string filter = null, CancellationToken cancellationToken = default)
public virtual async Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string filter = null, int page = 1, CancellationToken cancellationToken = default)
{
var roles = await UserRoleFinder.SearchRoleAsync(filter);
var roles = await UserRoleFinder.SearchRoleAsync(filter, page);
return roles.Select(r => new ResourcePermissionProviderKeyInfo(r.RoleName, r.RoleName)).ToList();
}

4
modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserResourcePermissionProviderKeyLookupService.cs

@ -25,9 +25,9 @@ public class UserResourcePermissionProviderKeyLookupService : IResourcePermissio
DisplayName = LocalizableString.Create<IdentityResource>(nameof(UserResourcePermissionProviderKeyLookupService));
}
public virtual async Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string filter = null, CancellationToken cancellationToken = default)
public virtual async Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string filter = null, int page = 1, CancellationToken cancellationToken = default)
{
var users = await UserRoleFinder.SearchUserAsync(filter);
var users = await UserRoleFinder.SearchUserAsync(filter, page);
return users.Select(u => new ResourcePermissionProviderKeyInfo(u.Id.ToString(), u.UserName)).ToList();
}

2
modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs

@ -14,7 +14,7 @@ public interface IPermissionAppService : IApplicationService
Task<GetResourceProviderListResultDto> GetResourceProviderKeyLookupServicesAsync();
Task<SearchProviderKeyListResultDto> SearchResourceProviderKeyAsync(string serviceName, string filter);
Task<SearchProviderKeyListResultDto> SearchResourceProviderKeyAsync(string serviceName, string filter, int page);
Task<GetResourcePermissionDefinitionListResultDto> GetResourceDefinitionsAsync([NotNull] string resourceName);

4
modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs

@ -181,10 +181,10 @@ public class PermissionAppService : ApplicationService, IPermissionAppService
}
[Authorize(PermissionManagementPermissions.ManageResourcePermissions)]
public virtual async Task<SearchProviderKeyListResultDto> SearchResourceProviderKeyAsync(string serviceName, string filter)
public virtual async Task<SearchProviderKeyListResultDto> SearchResourceProviderKeyAsync(string serviceName, string filter, int page)
{
var lookupService = await ResourcePermissionManager.GetProviderKeyLookupServiceAsync(serviceName);
var keys = await lookupService.SearchAsync(filter);
var keys = await lookupService.SearchAsync(filter, page);
return new SearchProviderKeyListResultDto
{
Keys = keys.Select(x => new SearchProviderKeyInfo

2
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IResourcePermissionProviderKeyLookupService.cs

@ -11,7 +11,7 @@ public interface IResourcePermissionProviderKeyLookupService
public ILocalizableString DisplayName { get; }
Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string filter = null, CancellationToken cancellationToken = default);
Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string filter = null, int page = 1, CancellationToken cancellationToken = default);
Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string[] keys, CancellationToken cancellationToken = default);
}

5
modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs

@ -51,12 +51,13 @@ public partial class PermissionsClientProxy : ClientProxyBase<IPermissionAppServ
return await RequestAsync<GetResourceProviderListResultDto>(nameof(GetResourceProviderKeyLookupServicesAsync));
}
public virtual async Task<SearchProviderKeyListResultDto> SearchResourceProviderKeyAsync(string serviceName, string filter)
public virtual async Task<SearchProviderKeyListResultDto> SearchResourceProviderKeyAsync(string serviceName, string filter, int page)
{
return await RequestAsync<SearchProviderKeyListResultDto>(nameof(SearchResourceProviderKeyAsync), new ClientProxyRequestTypeValue
{
{ typeof(string), serviceName },
{ typeof(string), filter }
{ typeof(string), filter },
{ typeof(int), page }
});
}

32
modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json

@ -205,6 +205,14 @@
"typeSimple": "string",
"isOptional": false,
"defaultValue": null
},
{
"name": "page",
"typeAsString": "System.Int32, System.Private.CoreLib",
"type": "System.Int32",
"typeSimple": "number",
"isOptional": false,
"defaultValue": null
}
],
"returnValue": {
@ -599,8 +607,8 @@
"allowAnonymous": null,
"implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService"
},
"SearchResourceProviderKeyAsyncByServiceNameAndFilter": {
"uniqueName": "SearchResourceProviderKeyAsyncByServiceNameAndFilter",
"SearchResourceProviderKeyAsyncByServiceNameAndFilterAndPage": {
"uniqueName": "SearchResourceProviderKeyAsyncByServiceNameAndFilterAndPage",
"name": "SearchResourceProviderKeyAsync",
"httpMethod": "GET",
"url": "api/permission-management/permissions/search-resource-provider-keys",
@ -621,6 +629,14 @@
"typeSimple": "string",
"isOptional": false,
"defaultValue": null
},
{
"name": "page",
"typeAsString": "System.Int32, System.Private.CoreLib",
"type": "System.Int32",
"typeSimple": "number",
"isOptional": false,
"defaultValue": null
}
],
"parameters": [
@ -647,6 +663,18 @@
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": ""
},
{
"nameOnMethod": "page",
"name": "page",
"jsonName": null,
"type": "System.Int32",
"typeSimple": "number",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": ""
}
],
"returnValue": {

4
modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs

@ -42,9 +42,9 @@ public class PermissionsController : AbpControllerBase, IPermissionAppService
}
[HttpGet("search-resource-provider-keys")]
public virtual Task<SearchProviderKeyListResultDto> SearchResourceProviderKeyAsync(string serviceName, string filter)
public virtual Task<SearchProviderKeyListResultDto> SearchResourceProviderKeyAsync(string serviceName, string filter, int page)
{
return PermissionAppService.SearchResourceProviderKeyAsync(serviceName, filter);
return PermissionAppService.SearchResourceProviderKeyAsync(serviceName, filter, page);
}
[HttpGet("resource-definitions")]

6
modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/add-resource-permission-management-modal.js

@ -19,6 +19,7 @@ var abp = abp || {};
data: function (params) {
var query = {};
query["serviceName"] = $('input[name="AddModel.ProviderName"]:checked').val();
query["page"] = params.page || 1;
query["filter"] = params.term;
return query;
},
@ -32,7 +33,10 @@ var abp = abp || {};
})
});
return {
results: keyValues
results: keyValues,
pagination: {
more: keyValues.length > 0
}
};
}
},

4
modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js

@ -41,9 +41,9 @@
}, ajaxParams));
};
volo.abp.permissionManagement.permissions.searchResourceProviderKey = function(serviceName, filter, ajaxParams) {
volo.abp.permissionManagement.permissions.searchResourceProviderKey = function(serviceName, filter, page, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/permission-management/permissions/search-resource-provider-keys' + abp.utils.buildQueryString([{ name: 'serviceName', value: serviceName }, { name: 'filter', value: filter }]) + '',
url: abp.appPath + 'api/permission-management/permissions/search-resource-provider-keys' + abp.utils.buildQueryString([{ name: 'serviceName', value: serviceName }, { name: 'filter', value: filter }, { name: 'page', value: page }]) + '',
type: 'GET'
}, ajaxParams));
};

2
modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestResourcePermissionProviderKeyLookupService.cs

@ -12,7 +12,7 @@ public class TestResourcePermissionProviderKeyLookupService : IResourcePermissio
public ILocalizableString DisplayName => new LocalizableString("Test", "TestResource");
public Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string filter = null, CancellationToken cancellationToken = default)
public Task<List<ResourcePermissionProviderKeyInfo>> SearchAsync(string filter = null, int page = 1, CancellationToken cancellationToken = default)
{
throw new System.NotImplementedException();
}

Loading…
Cancel
Save