public async Task <GetPermissionListResultDto> GetAsync(string providerName, string providerKey) { await CheckProviderPolicy(providerName); var result = new GetPermissionListResultDto { EntityDisplayName = providerKey, Groups = new List <PermissionGroupDto>() }; foreach (var group in _permissionDefinitionManager.GetGroups()) { var groupDto = new PermissionGroupDto { Name = group.Name, DisplayName = group.DisplayName.Localize(_stringLocalizerFactory), Permissions = new List <PermissionGrantInfoDto>() }; foreach (var permission in group.GetPermissionsWithChildren()) { if (permission.Providers.Any() && !permission.Providers.Contains(providerName)) { continue; } var grantInfoDto = new PermissionGrantInfoDto { Name = permission.Name, DisplayName = permission.DisplayName.Localize(_stringLocalizerFactory), ParentName = permission.Parent?.Name, AllowedProviders = permission.Providers, GrantedProviders = new List <ProviderInfoDto>() }; var grantInfo = await _permissionManager.GetAsync(permission.Name, providerName, providerKey); grantInfoDto.IsGranted = grantInfo.IsGranted; foreach (var provider in grantInfo.Providers) { grantInfoDto.GrantedProviders.Add(new ProviderInfoDto { ProviderName = provider.Name, ProviderKey = provider.Key, }); } groupDto.Permissions.Add(grantInfoDto); } if (groupDto.Permissions.Any()) { result.Groups.Add(groupDto); } } return(result); }
public async Task GetAsync() { await _permissionGrantRepository.InsertAsync(new PermissionGrant( Guid.NewGuid(), "MyPermission1", "Test", "Test") ); var grantedProviders = await _permissionManager.GetAsync("MyPermission1", "Test", "Test"); grantedProviders.ShouldNotBeNull(); grantedProviders.IsGranted.ShouldBeTrue(); grantedProviders.Name.ShouldBe("MyPermission1"); grantedProviders.Providers.ShouldContain(x => x.Key == "Test"); }
public async Task <GetPermissionListResultDto> GetAsync(string providerName, string providerKey) { var result = new GetPermissionListResultDto { Groups = new List <PermissionGroupDto>() }; foreach (var group in _permissionDefinitionManager.GetGroups()) { var groupDto = new PermissionGroupDto { Name = group.Name, DisplayName = group.Name, //TODO: DisplayName Permissions = new List <PermissionGrantInfoDto>() }; foreach (var permission in group.GetPermissionsWithChildren()) { var grantInfoDto = new PermissionGrantInfoDto { Name = permission.Name, DisplayName = permission.Name, //TODO: Add DisplayName to permission definition ParentName = permission.Parent?.Name, Providers = new List <ProviderInfoDto>() }; var grantInfo = await _permissionManager.GetAsync(permission.Name, providerName, providerKey); grantInfoDto.IsGranted = grantInfo.IsGranted; foreach (var provider in grantInfo.Providers) { grantInfoDto.Providers.Add(new ProviderInfoDto { ProviderName = provider.Name, ProviderKey = provider.Key, }); } groupDto.Permissions.Add(grantInfoDto); } result.Groups.Add(groupDto); } return(result); }
public static Task <PermissionWithGrantedProviders> GetForRoleAsync([NotNull] this IPermissionManager permissionManager, string roleName, string permissionName) { Check.NotNull(permissionManager, nameof(permissionManager)); return(permissionManager.GetAsync(permissionName, RolePermissionValueProvider.ProviderName, roleName)); }