public async Task <ConsentViewModel> BuildViewModelAsync(string returnUrl, ConsentInputModel model = null) { var request = await this.interactionService.GetAuthorizationContextAsync(returnUrl); if (request == null) { LoggerExtensions.LogError(this.Logger, "No consent request matching request: {0}", returnUrl); return(null); } var client = await IClientStoreExtensions.FindEnabledClientByIdAsync(this.clientStore, request.ClientId); if (client == null) { LoggerExtensions.LogError(this.Logger, "Invalid client id: {0}", request.ClientId); return(null); } var resources = await IResourceStoreExtensions.FindEnabledResourcesByScopeAsync(this.resourceStore, request.ScopesRequested); if (resources != null && (resources.IdentityResources.Any() || resources.ApiResources.Any())) { return(this.CreateConsentViewModel(model, returnUrl, client, resources)); } LoggerExtensions.LogError(this.Logger, "No scopes matching: {0}", request.ScopesRequested.Aggregate((x, y) => x + ", " + y)); return(null); }
private async Task <ConsentViewModel> BuildViewModelAsync(string returnUrl, ConsentInputModel model = null) { var request = await _interaction.GetAuthorizationContextAsync(returnUrl); if (request != null) { var client = await IClientStoreExtensions.FindEnabledClientByIdAsync(_clientStore, request.ClientId); if (client != null) { var resources = await IResourceStoreExtensions.FindEnabledResourcesByScopeAsync(_resourceStore, request.ScopesRequested); if (resources != null && (resources.IdentityResources.Any() || resources.ApiResources.Any())) { return(CreateConsentViewModel(model, returnUrl, request, client, resources)); } else { LoggerExtensions.LogError(_logger, "No scopes matching: {0}", Enumerable.Aggregate <string>(request.ScopesRequested, (x, y) => x + ", " + y)); } } else { LoggerExtensions.LogError(_logger, "Invalid client id: {0}", request.ClientId); } } else { LoggerExtensions.LogError(_logger, "No consent request matching request: {0}", returnUrl); } return(null); }
private async Task <GrantsViewModel> BuildViewModelAsync() { var grants = await _interaction.GetAllUserConsentsAsync(); var list = new List <GrantViewModel>(); foreach (var grant in grants) { var client = await _clients.FindClientByIdAsync(grant.ClientId); if (client != null) { var resources = await IResourceStoreExtensions.FindResourcesByScopeAsync(_resources, grant.Scopes); var item = new GrantViewModel() { ClientId = client.ClientId, ClientName = client.ClientName ?? client.ClientId, ClientLogoUrl = client.LogoUri, ClientUrl = client.ClientUri, Created = grant.CreationTime, Expires = grant.Expiration, IdentityGrantNames = resources.IdentityResources.Select(x => x.DisplayName ?? x.Name).ToArray(), ApiGrantNames = resources.ApiResources.Select(x => x.DisplayName ?? x.Name).ToArray() }; list.Add(item); } } return(new GrantsViewModel { Grants = list }); }
private static IEnumerable <string> GetInvalidScopes(IResourceStore resourceStore) { try { IResourceStoreExtensions.GetAllEnabledResourcesAsync(resourceStore).GetAwaiter().GetResult(); } catch (Exception ex) { // HACK (Cameron): This is fairly brittle but not sure about an alternative at the moment. return(ex.Message.Substring(112).Split(", ", StringSplitOptions.RemoveEmptyEntries)); } return(Enumerable.Empty <string>()); }