Browse Source

Improved

pull/9784/head
liangshiwei 5 years ago
parent
commit
6b1daeaef6
  1. 9
      modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs
  2. 5
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs
  3. 6
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs
  4. 15
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs
  5. 23
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/Permissions/MyProjectNamePermissionDefinitionProvider.cs

9
modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs

@ -38,11 +38,11 @@ namespace Volo.Abp.PermissionManagement.Identity
public override async Task<MultiplePermissionValueProviderGrantInfo> CheckAsync(string[] names, string providerName, string providerKey)
{
var multiplePermissionValueProviderGrantInfo = new MultiplePermissionValueProviderGrantInfo(names);
List<PermissionGrant> permissionGrants = null;
var permissionGrants = new List<PermissionGrant>();
if (providerName == Name)
{
permissionGrants = await PermissionGrantRepository.GetListAsync(names, providerName, providerKey);
permissionGrants.AddRange(await PermissionGrantRepository.GetListAsync(names, providerName, providerKey));
}
@ -53,11 +53,12 @@ namespace Volo.Abp.PermissionManagement.Identity
foreach (var roleName in roleNames)
{
permissionGrants = await PermissionGrantRepository.GetListAsync(names, Name, roleName);
permissionGrants.AddRange(await PermissionGrantRepository.GetListAsync(names, Name, roleName));
}
}
if (permissionGrants == null)
permissionGrants = permissionGrants.Distinct().ToList();
if (!permissionGrants.Any())
{
return multiplePermissionValueProviderGrantInfo;
}

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

@ -69,6 +69,11 @@ namespace Volo.Abp.PermissionManagement
}
}
if (!neededCheckPermissions.Any())
{
return result;
}
var grantInfoDtos = neededCheckPermissions.Select(x => new PermissionGrantInfoDto
{
Name = x.Name,

6
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs

@ -44,10 +44,8 @@ namespace Volo.Abp.PermissionManagement
foreach (var permissionName in names)
{
if (permissionGrants.Any(x => x.Name == permissionName))
{
multiplePermissionValueProviderGrantInfo.Result[permissionName] = new PermissionValueProviderGrantInfo(true, providerKey);
}
var isGrant = permissionGrants.Any(x => x.Name == permissionName);
multiplePermissionValueProviderGrantInfo.Result[permissionName] = new PermissionValueProviderGrantInfo(isGrant, providerKey);
}
return multiplePermissionValueProviderGrantInfo;

15
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs

@ -73,14 +73,12 @@ namespace Volo.Abp.PermissionManagement
public virtual async Task<List<PermissionWithGrantedProviders>> GetAllAsync(string providerName, string providerKey)
{
var results = new List<PermissionWithGrantedProviders>();
var permissionDefinitions = PermissionDefinitionManager.GetPermissions().ToArray();
foreach (var permissionDefinition in PermissionDefinitionManager.GetPermissions())
{
results.Add(await GetInternalAsync(permissionDefinition, providerName, providerKey));
}
var multiplePermissionWithGrantedProviders = await GetInternalAsync(permissionDefinitions, providerName, providerKey);
return multiplePermissionWithGrantedProviders.Result;
return results;
}
public virtual async Task SetAsync(string permissionName, string providerName, string providerKey, bool isGranted)
@ -173,6 +171,11 @@ namespace Volo.Abp.PermissionManagement
}
}
if (!neededCheckPermissions.Any())
{
return multiplePermissionWithGrantedProviders;
}
foreach (var provider in ManagementProviders)
{
permissionNames = neededCheckPermissions.Select(x => x.Name).ToArray();

23
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/Permissions/MyProjectNamePermissionDefinitionProvider.cs

@ -11,7 +11,28 @@ namespace MyCompanyName.MyProjectName.Permissions
var myGroup = context.AddGroup(MyProjectNamePermissions.GroupName);
//Define your own permissions here. Example:
//myGroup.AddPermission(MyProjectNamePermissions.MyPermission1, L("Permission:MyPermission1"));
myGroup.AddPermission("permission1", L("Permission:MyPermission1"));
myGroup.AddPermission("permission2", L("Permission:MyPermission1"));
myGroup.AddPermission("permission3", L("Permission:MyPermission1"));
myGroup.AddPermission("permission4", L("Permission:MyPermission1"));
myGroup.AddPermission("permission5", L("Permission:MyPermission1"));
myGroup.AddPermission("permission6", L("Permission:MyPermission1"));
myGroup.AddPermission("permission7", L("Permission:MyPermission1"));
myGroup.AddPermission("permission8", L("Permission:MyPermission1"));
myGroup.AddPermission("permission9", L("Permission:MyPermission1"));
myGroup.AddPermission("permission10", L("Permission:MyPermission1"));
myGroup.AddPermission("permission11", L("Permission:MyPermission1"));
myGroup.AddPermission("permission12", L("Permission:MyPermission1"));
myGroup.AddPermission("permission13", L("Permission:MyPermission1"));
myGroup.AddPermission("permission14", L("Permission:MyPermission1"));
myGroup.AddPermission("permission15", L("Permission:MyPermission1"));
myGroup.AddPermission("permission16", L("Permission:MyPermission1"));
myGroup.AddPermission("permission17", L("Permission:MyPermission1"));
myGroup.AddPermission("permission18", L("Permission:MyPermission1"));
myGroup.AddPermission("permission19", L("Permission:MyPermission1"));
myGroup.AddPermission("permission20", L("Permission:MyPermission1"));
myGroup.AddPermission("permission21", L("Permission:MyPermission1"));
myGroup.AddPermission("permission22", L("Permission:MyPermission1"));
}
private static LocalizableString L(string name)

Loading…
Cancel
Save