diff --git a/Squidex.ruleset b/Squidex.ruleset
index 055510070..5aae5da01 100644
--- a/Squidex.ruleset
+++ b/Squidex.ruleset
@@ -63,6 +63,7 @@
+
diff --git a/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository.cs b/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository.cs
index 5dd3020e7..5c3d3a616 100644
--- a/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository.cs
+++ b/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository.cs
@@ -64,7 +64,6 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents
{
Guard.NotNull(app, nameof(app));
Guard.NotNull(schema, nameof(schema));
- Guard.NotNull(status, nameof(status));
Guard.NotNull(query, nameof(query));
using (Profiler.TraceMethod("QueryAsyncByQuery"))
diff --git a/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Visitors/FilterFactory.cs b/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Visitors/FilterFactory.cs
index bbed5d51f..1dd0b1500 100644
--- a/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Visitors/FilterFactory.cs
+++ b/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Visitors/FilterFactory.cs
@@ -162,7 +162,11 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents.Visitors
}
filters.Add(Filter.Ne(x => x.IsDeleted, true));
- filters.Add(Filter.In(x => x.Status, status));
+
+ if (status != null)
+ {
+ filters.Add(Filter.In(x => x.Status, status));
+ }
if (ids != null && ids.Count > 0)
{
diff --git a/src/Squidex.Domain.Apps.Entities/Contents/ContentQueryService.cs b/src/Squidex.Domain.Apps.Entities/Contents/ContentQueryService.cs
index f51138b5e..5d93788fe 100644
--- a/src/Squidex.Domain.Apps.Entities/Contents/ContentQueryService.cs
+++ b/src/Squidex.Domain.Apps.Entities/Contents/ContentQueryService.cs
@@ -33,10 +33,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
{
public sealed class ContentQueryService : IContentQueryService
{
- private static readonly Status[] StatusAll = { Status.Archived, Status.Draft, Status.Published };
- private static readonly Status[] StatusArchived = { Status.Archived };
private static readonly Status[] StatusPublishedOnly = { Status.Published };
- private static readonly Status[] StatusPublishedDraft = { Status.Published, Status.Draft };
private readonly IContentRepository contentRepository;
private readonly IContentVersionLoader contentVersionLoader;
private readonly IAppProvider appProvider;
@@ -93,7 +90,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
{
var isVersioned = version > EtagVersion.Empty;
- var status = GetFindStatus(context);
+ var status = GetStatus(context);
var content =
isVersioned ?
@@ -119,7 +116,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
using (Profiler.TraceMethod())
{
- var status = GetQueryStatus(context);
+ var status = GetStatus(context);
IResultList contents;
@@ -145,7 +142,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
using (Profiler.TraceMethod())
{
- var status = GetQueryStatus(context);
+ var status = GetStatus(context);
List result;
@@ -217,7 +214,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
result.Data = result.Data.ConvertName2Name(schema.SchemaDef, converters);
}
- if (result.DataDraft != null && (context.ApiStatus == StatusForApi.PublishedDraft || context.IsFrontendClient))
+ if (result.DataDraft != null && (context.ApiStatus == StatusForApi.All || context.IsFrontendClient))
{
result.DataDraft = result.DataDraft.ConvertName2Name(schema.SchemaDef, converters);
}
@@ -340,15 +337,11 @@ namespace Squidex.Domain.Apps.Entities.Contents
return permissions.Allows(permission);
}
- private static Status[] GetFindStatus(QueryContext context)
+ private static Status[] GetStatus(QueryContext context)
{
- if (context.IsFrontendClient)
+ if (context.IsFrontendClient || context.ApiStatus == StatusForApi.All)
{
- return StatusAll;
- }
- else if (context.ApiStatus == StatusForApi.PublishedDraft)
- {
- return StatusPublishedDraft;
+ return null;
}
else
{
@@ -356,32 +349,6 @@ namespace Squidex.Domain.Apps.Entities.Contents
}
}
- private static Status[] GetQueryStatus(QueryContext context)
- {
- if (context.IsFrontendClient)
- {
- switch (context.FrontendStatus)
- {
- case StatusForFrontend.Archived:
- return StatusArchived;
- case StatusForFrontend.PublishedOnly:
- return StatusPublishedOnly;
- default:
- return StatusPublishedDraft;
- }
- }
- else
- {
- switch (context.ApiStatus)
- {
- case StatusForApi.PublishedDraft:
- return StatusPublishedDraft;
- default:
- return StatusPublishedOnly;
- }
- }
- }
-
private Task> QueryAsync(QueryContext context, IReadOnlyList ids, Status[] status)
{
return contentRepository.QueryAsync(context.App, status, new HashSet(ids), ShouldIncludeDraft(context));
@@ -409,7 +376,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
private static bool ShouldIncludeDraft(QueryContext context)
{
- return context.ApiStatus == StatusForApi.PublishedDraft || context.IsFrontendClient;
+ return context.ApiStatus == StatusForApi.All || context.IsFrontendClient;
}
}
}
diff --git a/src/Squidex.Domain.Apps.Entities/Contents/StatusForApi.cs b/src/Squidex.Domain.Apps.Entities/Contents/StatusForApi.cs
index 4d17ea6a6..e58b4c098 100644
--- a/src/Squidex.Domain.Apps.Entities/Contents/StatusForApi.cs
+++ b/src/Squidex.Domain.Apps.Entities/Contents/StatusForApi.cs
@@ -10,6 +10,6 @@ namespace Squidex.Domain.Apps.Entities.Contents
public enum StatusForApi
{
PublishedOnly,
- PublishedDraft,
+ All,
}
}
diff --git a/src/Squidex.Domain.Apps.Entities/Contents/StatusForFrontend.cs b/src/Squidex.Domain.Apps.Entities/Contents/StatusForFrontend.cs
deleted file mode 100644
index b29257b0c..000000000
--- a/src/Squidex.Domain.Apps.Entities/Contents/StatusForFrontend.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-// ==========================================================================
-// Squidex Headless CMS
-// ==========================================================================
-// Copyright (c) Squidex UG (haftungsbeschraenkt)
-// All rights reserved. Licensed under the MIT license.
-// ==========================================================================
-
-namespace Squidex.Domain.Apps.Entities.Contents
-{
- public enum StatusForFrontend
- {
- PublishedDraft,
- PublishedOnly,
- Archived
- }
-}
diff --git a/src/Squidex.Domain.Apps.Entities/QueryContext.cs b/src/Squidex.Domain.Apps.Entities/QueryContext.cs
index c6c552be9..094e56e3d 100644
--- a/src/Squidex.Domain.Apps.Entities/QueryContext.cs
+++ b/src/Squidex.Domain.Apps.Entities/QueryContext.cs
@@ -27,8 +27,6 @@ namespace Squidex.Domain.Apps.Entities
public StatusForApi ApiStatus { get; private set; }
- public StatusForFrontend FrontendStatus { get; private set; }
-
public IReadOnlyCollection AssetUrlsToResolve { get; private set; }
public IReadOnlyCollection Languages { get; private set; }
@@ -49,7 +47,7 @@ namespace Squidex.Domain.Apps.Entities
public QueryContext WithUnpublished(bool unpublished)
{
- return WithApiStatus(unpublished ? StatusForApi.PublishedDraft : StatusForApi.PublishedOnly);
+ return WithApiStatus(unpublished ? StatusForApi.All : StatusForApi.PublishedOnly);
}
public QueryContext WithApiStatus(StatusForApi status)
@@ -57,21 +55,6 @@ namespace Squidex.Domain.Apps.Entities
return Clone(c => c.ApiStatus = status);
}
- public QueryContext WithFrontendStatus(StatusForFrontend status)
- {
- return Clone(c => c.FrontendStatus = status);
- }
-
- public QueryContext WithFrontendStatus(string status)
- {
- if (status != null && Enum.TryParse(status, out var result))
- {
- return WithFrontendStatus(result);
- }
-
- return this;
- }
-
public QueryContext WithAssetUrlsToResolve(IEnumerable fieldNames)
{
if (fieldNames != null)
diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentQueryServiceTests.cs b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentQueryServiceTests.cs
index b0e29dabd..9ca83efa0 100644
--- a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentQueryServiceTests.cs
+++ b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentQueryServiceTests.cs
@@ -54,6 +54,12 @@ namespace Squidex.Domain.Apps.Entities.Contents
private readonly QueryContext context;
private readonly ContentQueryService sut;
+ public static IEnumerable