public override async Task InitializeAsync(PermissionsContext permissionsContext = null) { await base.InitializeAsync(); var result = await GraphQLClient .Content .Query("blogPost", builder => { builder .WithField("contentItemId"); }); BlogPostContentItemId = result["data"]["blogPost"].First["contentItemId"].ToString(); var content = await Client.GetAsync($"api/content/{BlogPostContentItemId}"); OriginalBlogPost = await content.Content.ReadAsAsync <ContentItem>(); OriginalBlogPostVersionId = OriginalBlogPost.ContentItemVersionId; using (var shellScope = await ShellHost.GetScopeAsync(TenantName)) { await shellScope.UsingAsync(async scope => { var remoteClientService = scope.ServiceProvider.GetRequiredService <RemoteClientService>(); await remoteClientService.CreateRemoteClientAsync(RemoteDeploymentClientName, RemoteDeploymentApiKey); }); } }
// Used for http based graphql tests, marries a permission context to a request public PermissionContextAuthorizationHandler(IHttpContextAccessor httpContextAccessor, IDictionary <string, PermissionsContext> permissionsContexts) { _permissionsContext = new PermissionsContext(); var requestContext = httpContextAccessor.HttpContext.Request; if (requestContext?.Headers.ContainsKey("PermissionsContext") == true && permissionsContexts.TryGetValue(requestContext.Headers["PermissionsContext"], out var permissionsContext)) { _permissionsContext = permissionsContext; } }
public virtual async Task InitializeAsync(PermissionsContext permissionsContext = null) { var tenantName = Guid.NewGuid().ToString().Replace("-", ""); var createModel = new Tenants.ViewModels.CreateApiViewModel { DatabaseProvider = "Sqlite", RecipeName = "Blog", Name = tenantName, RequestUrlPrefix = tenantName }; var createResult = await DefaultTenantClient.PostAsJsonAsync("api/tenants/create", createModel); createResult.EnsureSuccessStatusCode(); var content = await createResult.Content.ReadAsStringAsync(); var url = new Uri(content.Trim('"')); url = new Uri(url.Scheme + "://" + url.Authority + url.LocalPath + "/"); var setupModel = new Tenants.ViewModels.SetupApiViewModel { SiteName = "Test Site", DatabaseProvider = "Sqlite", RecipeName = "Blog", UserName = "******", Password = "******", Name = tenantName, Email = "Nick@Orchard" }; var setupResult = await DefaultTenantClient.PostAsJsonAsync("api/tenants/setup", setupModel); setupResult.EnsureSuccessStatusCode(); lock (Site) { Client = Site.CreateDefaultClient(url); TenantName = tenantName; } if (permissionsContext != null) { var permissionContextKey = Guid.NewGuid().ToString(); SiteStartup.PermissionsContexts.TryAdd(permissionContextKey, permissionsContext); Client.DefaultRequestHeaders.Add("PermissionsContext", permissionContextKey); } GraphQLClient = new OrchardGraphQLClient(Client); }
public override async Task InitializeAsync(PermissionsContext permissionsContext = null) { await base.InitializeAsync(); var result = await GraphQLClient .Content .Query("blog", builder => { builder .WithField("contentItemId"); }); BlogContentItemId = result["data"]["blog"].First["contentItemId"].ToString(); }
public override async Task InitializeAsync(PermissionsContext permissionsContext = null) { await base.InitializeAsync(); var body = new ContentTypeQueryResourceBuilder("blogPost") .WithField("contentItemId").Build() + new ContentTypeQueryResourceBuilder("blog") .WithField("contentItemId").Build() + new ContentTypeQueryResourceBuilder("taxonomy") .WithField("contentItemId").Build(); var result = await GraphQLClient.Content.Query(body); var blogPostContentItemId = result["data"]["blogPost"].First["contentItemId"].ToString(); var content = await Client.GetAsync($"api/content/{blogPostContentItemId}"); BlogPost = await content.Content.ReadAsAsync <ContentItem>(); BlogContentItemId = result["data"]["blog"].First["contentItemId"].ToString(); TagsTaxonomyContentItemId = result["data"]["taxonomy"][1]["contentItemId"].ToString(); }
// Used for static graphql test; passes a permissionsContext directly public PermissionContextAuthorizationHandler(PermissionsContext permissionsContext) { _permissionsContext = permissionsContext; }
public static T WithPermissionsContext <T>(this T siteContext, PermissionsContext permissionsContext) where T : SiteContext { siteContext.PermissionsContext = permissionsContext; return(siteContext); }