pull/9784/head
liangshiwei 4 years ago
parent 61d5639d08
commit 6b1daeaef6

@ -38,11 +38,11 @@ namespace Volo.Abp.PermissionManagement.Identity
public override async Task<MultiplePermissionValueProviderGrantInfo> CheckAsync(string[] names, string providerName, string providerKey) public override async Task<MultiplePermissionValueProviderGrantInfo> CheckAsync(string[] names, string providerName, string providerKey)
{ {
var multiplePermissionValueProviderGrantInfo = new MultiplePermissionValueProviderGrantInfo(names); var multiplePermissionValueProviderGrantInfo = new MultiplePermissionValueProviderGrantInfo(names);
List<PermissionGrant> permissionGrants = null; var permissionGrants = new List<PermissionGrant>();
if (providerName == Name) 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) 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; return multiplePermissionValueProviderGrantInfo;
} }

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

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

@ -73,14 +73,12 @@ namespace Volo.Abp.PermissionManagement
public virtual async Task<List<PermissionWithGrantedProviders>> GetAllAsync(string providerName, string providerKey) 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()) var multiplePermissionWithGrantedProviders = await GetInternalAsync(permissionDefinitions, providerName, providerKey);
{
results.Add(await GetInternalAsync(permissionDefinition, providerName, providerKey)); return multiplePermissionWithGrantedProviders.Result;
}
return results;
} }
public virtual async Task SetAsync(string permissionName, string providerName, string providerKey, bool isGranted) 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) foreach (var provider in ManagementProviders)
{ {
permissionNames = neededCheckPermissions.Select(x => x.Name).ToArray(); permissionNames = neededCheckPermissions.Select(x => x.Name).ToArray();

@ -11,7 +11,28 @@ namespace MyCompanyName.MyProjectName.Permissions
var myGroup = context.AddGroup(MyProjectNamePermissions.GroupName); var myGroup = context.AddGroup(MyProjectNamePermissions.GroupName);
//Define your own permissions here. Example: //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) private static LocalizableString L(string name)

Loading…
Cancel
Save