Browse Source

Tags fix.

pull/509/head
Sebastian 6 years ago
parent
commit
f2374acd70
  1. 6
      backend/extensions/Squidex.Extensions/Validation/CompositeUniqueValidator.cs
  2. 5
      backend/extensions/Squidex.Extensions/Validation/CompositeUniqueValidatorFactory.cs
  3. 2
      backend/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldProperties.cs
  4. 2
      backend/src/Squidex.Domain.Apps.Core.Model/Schemas/SchemaProperties.cs
  5. 6
      backend/src/Squidex.Web/Pipeline/SameSiteCookiesServiceCollectionExtensions.cs
  6. 17
      backend/tools/TestSuite/TestSuite.Shared/Fixtures/ClientManagerFixture.cs
  7. 1
      frontend/app-config/webpack.config.js

6
backend/extensions/Squidex.Extensions/Validation/CompositeUniqueValidator.cs

@ -62,7 +62,7 @@ namespace Squidex.Extensions.Validation
}
}
private static ClrValue? TryGetValue(IRootField field, NamedContentData data)
private static ClrValue TryGetValue(IRootField field, NamedContentData data)
{
var value = JsonValue.Null;
@ -97,7 +97,9 @@ namespace Squidex.Extensions.Validation
private bool IsValidateableField(IRootField field)
{
return field.Partitioning == Partitioning.Invariant && field.RawProperties.Tags.Contains(tag) &&
return
field.Partitioning == Partitioning.Invariant &&
field.RawProperties.Tags?.Contains(tag) == true &&
(field.RawProperties is BooleanFieldProperties ||
field.RawProperties is NumberFieldProperties ||
field.RawProperties is ReferencesFieldProperties ||

5
backend/extensions/Squidex.Extensions/Validation/CompositeUniqueValidatorFactory.cs

@ -35,6 +35,11 @@ namespace Squidex.Extensions.Validation
private static IEnumerable<string> ValidatorTags(IEnumerable<string> tags)
{
if (tags == null)
{
yield break;
}
foreach (var tag in tags)
{
if (tag.StartsWith(Prefix, StringComparison.OrdinalIgnoreCase) && tag.Length > Prefix.Length)

2
backend/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldProperties.cs

@ -18,7 +18,7 @@ namespace Squidex.Domain.Apps.Core.Schemas
public string? EditorUrl { get; set; }
public ReadOnlyCollection<string> Tags { get; set; }
public ReadOnlyCollection<string>? Tags { get; set; }
public abstract T Accept<T>(IFieldPropertiesVisitor<T> visitor);

2
backend/src/Squidex.Domain.Apps.Core.Model/Schemas/SchemaProperties.cs

@ -13,7 +13,7 @@ namespace Squidex.Domain.Apps.Core.Schemas
[Equals(DoNotAddEqualityOperators = true)]
public sealed class SchemaProperties : NamedElementPropertiesBase
{
public ReadOnlyCollection<string> Tags { get; set; }
public ReadOnlyCollection<string>? Tags { get; set; }
public bool DeepEquals(SchemaProperties properties)
{

6
backend/src/Squidex.Web/Pipeline/SameSiteCookiesServiceCollectionExtensions.cs

@ -25,7 +25,7 @@ namespace Squidex.Web.Pipeline
/// Configures a cookie policy to properly set the SameSite attribute
/// for Browsers that handle unknown values as Strict. Ensure that you
/// add the <seealso cref="Microsoft.AspNetCore.CookiePolicy.CookiePolicyMiddleware" />
/// into the pipeline before sending any cookies!
/// into the pipeline before sending any cookies!.
/// </summary>
/// <remarks>
/// Minimum ASPNET Core Version required for this code:
@ -45,7 +45,7 @@ namespace Squidex.Web.Pipeline
/// - https://tools.ietf.org/html/draft-west-cookie-incrementalism-00
/// - https://www.chromium.org/updates/same-site
/// - https://devblogs.microsoft.com/aspnet/upcoming-samesite-cookie-changes-in-asp-net-and-asp-net-core/
/// - https://bugs.webkit.org/show_bug.cgi?id=198181
/// - https://bugs.webkit.org/show_bug.cgi?id=198181.
/// </remarks>
/// <param name="services">The service collection to register <see cref="CookiePolicyOptions" /> into.</param>
/// <returns>The modified <see cref="IServiceCollection" />.</returns>
@ -82,7 +82,7 @@ namespace Squidex.Web.Pipeline
/// </summary>
/// <remarks>
/// This code is taken from Microsoft:
/// https://devblogs.microsoft.com/aspnet/upcoming-samesite-cookie-changes-in-asp-net-and-asp-net-core/
/// https://devblogs.microsoft.com/aspnet/upcoming-samesite-cookie-changes-in-asp-net-and-asp-net-core/.
/// </remarks>
/// <param name="userAgent">The user agent string to check.</param>
/// <returns>Whether the specified user agent (browser) accepts SameSite=None or not.</returns>

17
backend/tools/TestSuite/TestSuite.Shared/Fixtures/ClientManagerFixture.cs

@ -6,13 +6,15 @@
// ==========================================================================
using System;
using System.Net.Http;
using Squidex.ClientLibrary;
using Squidex.ClientLibrary.Configuration;
namespace TestSuite.Fixtures
{
public class ClientManagerFixture : IDisposable
{
public string ServerUrl { get; } = "http://localhost:5000";
public string ServerUrl { get; } = "https://localhost:5001";
public string ClientId { get; } = "root";
@ -22,6 +24,18 @@ namespace TestSuite.Fixtures
public SquidexClientManager ClientManager { get; }
public sealed class Configurator : IHttpConfigurator
{
public void Configure(HttpClient httpClient)
{
}
public void Configure(HttpClientHandler httpClientHandler)
{
httpClientHandler.ServerCertificateCustomValidationCallback = (message, certificate, chain, error) => true;
}
}
public ClientManagerFixture()
{
ClientManager = new SquidexClientManager(new SquidexOptions
@ -29,6 +43,7 @@ namespace TestSuite.Fixtures
AppName = AppName,
ClientId = ClientId,
ClientSecret = ClientSecret,
Configurator = new Configurator(),
ReadResponseAsString = true,
Url = ServerUrl
});

1
frontend/app-config/webpack.config.js

@ -209,6 +209,7 @@ module.exports = function (env) {
headers: {
'Access-Control-Allow-Origin': '*'
},
https: true,
historyApiFallback: true
}
};

Loading…
Cancel
Save