Browse Source

Fix parent id for assets.

pull/593/head
Sebastian 5 years ago
parent
commit
60c8c0a165
  1. 2
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/Visitors/FindExtensions.cs
  2. 44
      backend/src/Squidex.Domain.Users.MongoDb/MongoUser.cs
  3. 8
      backend/src/Squidex.Domain.Users.MongoDb/MongoUserStore.cs
  4. 4
      backend/src/Squidex/Areas/Api/Controllers/Assets/AssetsController.cs
  5. 18
      backend/tools/TestSuite/TestSuite.ApiTests/AppTests.cs
  6. 2
      backend/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj

2
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/Visitors/FindExtensions.cs

@ -46,7 +46,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Assets.Visitors
if (parentId.HasValue)
{
if (parentId == DomainId.Empty)
if (parentId.Value == DomainId.Empty)
{
filters.Add(
Filter.Or(

44
backend/src/Squidex.Domain.Users.MongoDb/MongoUser.cs

@ -32,24 +32,19 @@ namespace Squidex.Domain.Users.MongoDb
[BsonElement]
public HashSet<string> Roles { get; set; } = new HashSet<string>();
internal void AddLogin(UserLoginInfo login)
internal string? GetToken(string provider, string name)
{
Logins.Add(login);
return Tokens.Find(x => x.LoginProvider == provider && x.Name == name)?.Value;
}
internal void AddRole(string role)
internal void AddLogin(UserLoginInfo login)
{
Roles.Add(role);
Logins.Add(new UserLoginInfo(login.LoginProvider, login.ProviderKey, login.ProviderDisplayName));
}
internal void RemoveRole(string role)
{
Roles.Remove(role);
}
internal void RemoveLogin(string provider, string providerKey)
internal void AddRole(string role)
{
Logins.RemoveAll(x => x.LoginProvider == provider && x.ProviderKey == providerKey);
Roles.Add(role);
}
internal void AddClaim(Claim claim)
@ -62,24 +57,29 @@ namespace Squidex.Domain.Users.MongoDb
claims.Foreach((x, _) => AddClaim(x));
}
internal void RemoveClaim(Claim claim)
internal void AddToken(string provider, string name, string value)
{
Claims.RemoveAll(x => x.Type == claim.Type && x.Value == claim.Value);
Tokens.Add(new UserTokenInfo { LoginProvider = provider, Name = name, Value = value });
}
internal void RemoveClaims(IEnumerable<Claim> claims)
internal void RemoveLogin(string provider, string providerKey)
{
claims.Foreach((x, _) => RemoveClaim(x));
Logins.RemoveAll(x => x.LoginProvider == provider && x.ProviderKey == providerKey);
}
internal string? GetToken(string provider, string name)
internal void RemoveRole(string role)
{
return Tokens.FirstOrDefault(x => x.LoginProvider == provider && x.Name == name)?.Value;
Roles.Remove(role);
}
internal void AddToken(string provider, string name, string value)
internal void RemoveClaim(Claim claim)
{
Tokens.Add(new UserTokenInfo { LoginProvider = provider, Name = name, Value = value });
Claims.RemoveAll(x => x.Type == claim.Type && x.Value == claim.Value);
}
internal void RemoveClaims(IEnumerable<Claim> claims)
{
claims.Foreach((x, _) => RemoveClaim(x));
}
internal void RemoveToken(string provider, string name)
@ -94,11 +94,11 @@ namespace Squidex.Domain.Users.MongoDb
AddClaim(newClaim);
}
internal void SetToken(string loginProider, string name, string value)
internal void ReplaceToken(string provider, string name, string value)
{
RemoveToken(loginProider, name);
RemoveToken(provider, name);
AddToken(loginProider, name, value);
AddToken(provider, name, value);
}
}

8
backend/src/Squidex.Domain.Users.MongoDb/MongoUserStore.cs

@ -552,7 +552,7 @@ namespace Squidex.Domain.Users.MongoDb
public Task SetTokenAsync(IdentityUser user, string loginProvider, string name, string value, CancellationToken cancellationToken)
{
((MongoUser)user).SetToken(loginProvider, name, value);
((MongoUser)user).ReplaceToken(loginProvider, name, value);
return Task.CompletedTask;
}
@ -566,14 +566,14 @@ namespace Squidex.Domain.Users.MongoDb
public Task SetAuthenticatorKeyAsync(IdentityUser user, string key, CancellationToken cancellationToken)
{
((MongoUser)user).SetToken(InternalLoginProvider, AuthenticatorKeyTokenName, key);
((MongoUser)user).ReplaceToken(InternalLoginProvider, AuthenticatorKeyTokenName, key);
return Task.CompletedTask;
}
public Task ReplaceCodesAsync(IdentityUser user, IEnumerable<string> recoveryCodes, CancellationToken cancellationToken)
{
((MongoUser)user).SetToken(InternalLoginProvider, RecoveryCodeTokenName, string.Join(";", recoveryCodes));
((MongoUser)user).ReplaceToken(InternalLoginProvider, RecoveryCodeTokenName, string.Join(";", recoveryCodes));
return Task.CompletedTask;
}
@ -587,7 +587,7 @@ namespace Squidex.Domain.Users.MongoDb
{
var updatedCodes = new List<string>(splitCodes.Where(s => s != code));
((MongoUser)user).SetToken(InternalLoginProvider, RecoveryCodeTokenName, string.Join(";", updatedCodes));
((MongoUser)user).ReplaceToken(InternalLoginProvider, RecoveryCodeTokenName, string.Join(";", updatedCodes));
return Task.FromResult(true);
}

4
backend/src/Squidex/Areas/Api/Controllers/Assets/AssetsController.cs

@ -95,9 +95,9 @@ namespace Squidex.Areas.Api.Controllers.Assets
[ProducesResponseType(typeof(AssetsDto), 200)]
[ApiPermissionOrAnonymous(Permissions.AppAssetsRead)]
[ApiCosts(1)]
public async Task<IActionResult> GetAssets(string app, [FromQuery] string? parentId, [FromQuery] string? ids = null, [FromQuery] string? q = null)
public async Task<IActionResult> GetAssets(string app, [FromQuery] DomainId? parentId, [FromQuery] string? ids = null, [FromQuery] string? q = null)
{
var assets = await assetQuery.QueryAsync(Context, DomainId.CreateNullable(parentId), CreateQuery(ids, q));
var assets = await assetQuery.QueryAsync(Context, parentId, CreateQuery(ids, q));
var response = Deferred.Response(() =>
{

18
backend/tools/TestSuite/TestSuite.ApiTests/AppTests.cs

@ -7,7 +7,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
@ -32,25 +31,10 @@ namespace TestSuite.ApiTests
[Fact]
public async Task Should_get_app()
{
var w = Stopwatch.StartNew();
// STEP 1: Get app.
var app = await _.Apps.GetAppAsync(_.AppName);
Assert.Equal(_.AppName, app.Name);
w.Stop();
Debug.WriteLine("ELAPSED: {0}", w.Elapsed);
var w2 = Stopwatch.StartNew();
app = await _.Apps.GetAppAsync(_.AppName);
Assert.Equal(_.AppName, app.Name);
w2.Stop();
Debug.WriteLine("ELAPSED: {0}", w2.Elapsed);
}
[Fact]

2
backend/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj

@ -11,7 +11,7 @@
</PackageReference>
<PackageReference Include="Lazy.Fody" Version="1.8.0" PrivateAssets="all" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="Squidex.ClientLibrary" Version="6.0.0-beta1" />
<PackageReference Include="Squidex.ClientLibrary" Version="6.4.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="xunit" Version="2.4.1" />
</ItemGroup>

Loading…
Cancel
Save