Browse Source

Fix for API docs.

pull/334/head
Sebastian Stehle 7 years ago
parent
commit
2f2c1e5d74
  1. 3
      src/Squidex/Areas/Api/Controllers/Contents/ContentSwaggerController.cs
  2. 8
      src/Squidex/Pipeline/AppResolver.cs

3
src/Squidex/Areas/Api/Controllers/Contents/ContentSwaggerController.cs

@ -6,6 +6,7 @@
// ========================================================================== // ==========================================================================
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Squidex.Areas.Api.Controllers.Contents.Generator; using Squidex.Areas.Api.Controllers.Contents.Generator;
using Squidex.Domain.Apps.Entities; using Squidex.Domain.Apps.Entities;
@ -31,6 +32,7 @@ namespace Squidex.Areas.Api.Controllers.Contents
[HttpGet] [HttpGet]
[Route("content/{app}/docs/")] [Route("content/{app}/docs/")]
[ApiCosts(0)] [ApiCosts(0)]
[AllowAnonymous]
public IActionResult Docs(string app) public IActionResult Docs(string app)
{ {
var vm = new DocsVM { Specification = $"~/content/{app}/swagger/v1/swagger.json" }; var vm = new DocsVM { Specification = $"~/content/{app}/swagger/v1/swagger.json" };
@ -41,6 +43,7 @@ namespace Squidex.Areas.Api.Controllers.Contents
[HttpGet] [HttpGet]
[Route("content/{app}/swagger/v1/swagger.json")] [Route("content/{app}/swagger/v1/swagger.json")]
[ApiCosts(0)] [ApiCosts(0)]
[AllowAnonymous]
public async Task<IActionResult> GetSwagger(string app) public async Task<IActionResult> GetSwagger(string app)
{ {
var schemas = await appProvider.GetSchemasAsync(AppId); var schemas = await appProvider.GetSchemasAsync(AppId);

8
src/Squidex/Pipeline/AppResolver.cs

@ -9,6 +9,7 @@ using System.Linq;
using System.Security.Claims; using System.Security.Claims;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.Filters;
using Squidex.Domain.Apps.Entities; using Squidex.Domain.Apps.Entities;
using Squidex.Domain.Apps.Entities.Apps; using Squidex.Domain.Apps.Entities.Apps;
@ -62,7 +63,7 @@ namespace Squidex.Pipeline
{ {
var set = user.Permissions(); var set = user.Permissions();
if (!set.Includes(Permissions.ForApp(Permissions.App, appName))) if (!set.Includes(Permissions.ForApp(Permissions.App, appName)) && !AllowAnonymous(context))
{ {
context.Result = new NotFoundResult(); context.Result = new NotFoundResult();
return; return;
@ -85,6 +86,11 @@ namespace Squidex.Pipeline
await next(); await next();
} }
private static bool AllowAnonymous(ActionExecutingContext context)
{
return context.ActionDescriptor.FilterDescriptors.Any(x => x.Filter is AllowAnonymousFilter);
}
private static PermissionSet FindByOpenIdClient(IAppEntity app, ClaimsPrincipal user) private static PermissionSet FindByOpenIdClient(IAppEntity app, ClaimsPrincipal user)
{ {
var clientId = user.GetClientId(); var clientId = user.GetClientId();

Loading…
Cancel
Save